Auto-merge from mysql-next-mr.
This commit is contained in:
commit
b78e3a5d1e
@ -392,6 +392,7 @@ client/rpl_record_old.h
|
||||
client/rpl_tblmap.h
|
||||
client/rpl_tblmap.cc
|
||||
client/rpl_utility.h
|
||||
client/rpl_utility.cc
|
||||
client/select_test
|
||||
client/sql_string.cpp
|
||||
client/ssl_test
|
||||
@ -1143,6 +1144,7 @@ libmysqld/rpl_handler.cc
|
||||
libmysqld/rpl_injector.cc
|
||||
libmysqld/rpl_record.cc
|
||||
libmysqld/rpl_record_old.cc
|
||||
libmysqld/rpl_utility.cc
|
||||
libmysqld/scheduler.cc
|
||||
libmysqld/set_var.cc
|
||||
libmysqld/simple-test
|
||||
@ -3072,3 +3074,4 @@ libmysqld/rpl_handler.cc
|
||||
dbug/tests
|
||||
libmysqld/sys_vars.cc
|
||||
libmysqld/keycaches.cc
|
||||
client/dtoa.c
|
||||
|
@ -1,4 +1,20 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
#
|
||||
# This script's purpose is to update the automake/autoconf helper scripts and
|
||||
# to run a plain "configure" without any special compile flags. Only features
|
||||
@ -61,6 +77,7 @@ fi
|
||||
# Remember that configure restricts the man pages to the configured features !
|
||||
./configure \
|
||||
--with-embedded-server \
|
||||
--with-perfschema \
|
||||
--with-ndbcluster
|
||||
$gmake
|
||||
|
||||
|
@ -104,9 +104,10 @@ DEFS = -DMYSQL_CLIENT_NO_THREADS \
|
||||
-DMYSQL_DATADIR="\"$(localstatedir)\""
|
||||
|
||||
sql_src=log_event.h mysql_priv.h rpl_constants.h \
|
||||
rpl_utility.h rpl_tblmap.h rpl_tblmap.cc \
|
||||
rpl_tblmap.h rpl_tblmap.cc \
|
||||
log_event.cc my_decimal.h my_decimal.cc \
|
||||
log_event_old.h log_event_old.cc \
|
||||
rpl_utility.h rpl_utility.cc \
|
||||
rpl_record_old.h rpl_record_old.cc
|
||||
strings_src=decimal.c dtoa.c
|
||||
|
||||
|
@ -2140,4 +2140,4 @@ int main(int argc, char** argv)
|
||||
#include "my_decimal.cc"
|
||||
#include "log_event.cc"
|
||||
#include "log_event_old.cc"
|
||||
|
||||
#include "rpl_utility.cc"
|
||||
|
@ -40,9 +40,9 @@ extern "C" {
|
||||
|
||||
typedef struct unicase_info_st
|
||||
{
|
||||
uint16 toupper;
|
||||
uint16 tolower;
|
||||
uint16 sort;
|
||||
uint32 toupper;
|
||||
uint32 tolower;
|
||||
uint32 sort;
|
||||
} MY_UNICASE_INFO;
|
||||
|
||||
|
||||
@ -439,6 +439,14 @@ extern size_t my_caseup_mb(CHARSET_INFO *, char *src, size_t srclen,
|
||||
char *dst, size_t dstlen);
|
||||
extern size_t my_casedn_mb(CHARSET_INFO *, char *src, size_t srclen,
|
||||
char *dst, size_t dstlen);
|
||||
extern size_t my_caseup_mb_varlen(CHARSET_INFO *, char *src, size_t srclen,
|
||||
char *dst, size_t dstlen);
|
||||
extern size_t my_casedn_mb_varlen(CHARSET_INFO *, char *src, size_t srclen,
|
||||
char *dst, size_t dstlen);
|
||||
extern size_t my_caseup_ujis(CHARSET_INFO *, char *src, size_t srclen,
|
||||
char *dst, size_t dstlen);
|
||||
extern size_t my_casedn_ujis(CHARSET_INFO *, char *src, size_t srclen,
|
||||
char *dst, size_t dstlen);
|
||||
extern int my_strcasecmp_mb(CHARSET_INFO * cs,const char *, const char *);
|
||||
|
||||
int my_wildcmp_mb(CHARSET_INFO *,
|
||||
|
@ -117,6 +117,12 @@ enum enum_server_command
|
||||
thread */
|
||||
#define REFRESH_MASTER 128 /* Remove all bin logs in the index
|
||||
and truncate the index */
|
||||
#define REFRESH_ERROR_LOG 256 /* Rotate only the erorr log */
|
||||
#define REFRESH_ENGINE_LOG 512 /* Flush all storage engine logs */
|
||||
#define REFRESH_BINARY_LOG 1024 /* Flush the binary log */
|
||||
#define REFRESH_RELAY_LOG 2048 /* Flush the relay log */
|
||||
#define REFRESH_GENERAL_LOG 4096 /* Flush the general log */
|
||||
#define REFRESH_SLOW_LOG 8192 /* Flush the slow query log */
|
||||
|
||||
/* The following can't be set with mysql_refresh() */
|
||||
#define REFRESH_READ_LOCK 16384 /* Lock tables for read */
|
||||
|
@ -56,7 +56,7 @@ sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \
|
||||
item_geofunc.cc item_subselect.cc item_row.cc\
|
||||
item_xmlfunc.cc \
|
||||
key.cc lock.cc log.cc sql_state.c \
|
||||
log_event.cc rpl_record.cc \
|
||||
log_event.cc rpl_record.cc rpl_utility.cc \
|
||||
log_event_old.cc rpl_record_old.cc \
|
||||
protocol.cc net_serv.cc opt_range.cc \
|
||||
opt_sum.cc procedure.cc records.cc sql_acl.cc \
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2000-2006 MySQL AB
|
||||
# Copyright (C) 2000-2006 MySQL AB, 2008-2009 Sun Microsystems, Inc.
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Library General Public
|
||||
@ -75,6 +75,8 @@ EXTRA_DIST = README \
|
||||
|
||||
# List of directories containing test + result files and the
|
||||
# related test data files that should be copied
|
||||
# If you want to add a new suite, please check DEFAULT_SUITES in
|
||||
# mysql-test-run.pl.
|
||||
TEST_DIRS = t r include std_data std_data/parts collections \
|
||||
std_data/ndb_backup50 std_data/ndb_backup51 \
|
||||
std_data/ndb_backup51_data_be std_data/ndb_backup51_data_le \
|
||||
@ -100,7 +102,9 @@ TEST_DIRS = t r include std_data std_data/parts collections \
|
||||
suite/rpl_ndb suite/rpl_ndb/t suite/rpl_ndb/r \
|
||||
suite/parts suite/parts/t suite/parts/r suite/parts/inc \
|
||||
suite/innodb suite/innodb/t suite/innodb/r suite/innodb/include \
|
||||
suite/sys_vars suite/sys_vars/t suite/sys_vars/inc suite/sys_vars/r
|
||||
suite/sys_vars suite/sys_vars/t suite/sys_vars/inc suite/sys_vars/r \
|
||||
suite/perfschema suite/perfschema/t suite/perfschema/r \
|
||||
suite/perfschema/include
|
||||
|
||||
# Used by dist-hook and install-data-local to copy all
|
||||
# test files into either dist or install directory
|
||||
|
@ -11,16 +11,28 @@ main.information_schema # Bug#47449 2009-09-19 alik main.inform
|
||||
main.lock_multi_bug38499 # Bug#47448 2009-09-19 alik main.lock_multi_bug38499 times out sporadically
|
||||
main.lock_multi_bug38691 @solaris # Bug#47792 2009-10-02 alik main.lock_multi_bug38691 times out sporadically on Solaris 10
|
||||
main.log_tables # Bug#47924 2009-10-08 alik main.log_tables times out sporadically
|
||||
main.outfile_loaddata @solaris # bug#46895 2010-01-20 alik Test "outfile_loaddata" fails (reproducible)
|
||||
main.plugin # Bug#47146 Linking problem with example plugin when dtrace enabled
|
||||
main.signal_demo3 @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||
main.sp @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||
|
||||
perfschema.tampered_perfschema_table1 @windows # Bug#50478 2010-01-20 alik perfschema.tampered_perfschema_table1 fails sporadically on Windows and Solaris
|
||||
perfschema.tampered_perfschema_table1 @solaris # Bug#50478 2010-01-20 alik perfschema.tampered_perfschema_table1 fails sporadically on Windows and Solaris
|
||||
|
||||
rpl.rpl_get_master_version_and_clock* # Bug#49191 2009-12-01 Daogang rpl_get_master_version_and_clock failed on PB2: COM_REGISTER_SLAVE failed
|
||||
rpl.rpl_heartbeat_basic # BUG#43828 2009-10-22 luis fails sporadically
|
||||
rpl.rpl_heartbeat_2slaves # BUG#43828 2009-10-22 luis fails sporadically
|
||||
rpl.rpl_innodb_bug28430* # Bug#46029
|
||||
rpl.rpl_innodb_bug30888* @solaris # Bug#47646 2009-09-25 alik rpl.rpl_innodb_bug30888 fails sporadically on Solaris
|
||||
rpl.rpl_killed_ddl @windows # Bug#47638 2010-01-20 alik The rpl_killed_ddl test fails on Windows
|
||||
rpl.rpl_plugin_load* @solaris # Bug#47146
|
||||
rpl.rpl_row_sp011* @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||
rpl.rpl_slave_load_remove_tmpfile* @windows # Bug#50474 2010-01-20 alik rpl_slave_load_remove_tmpfile failed on windows debug enabled binary
|
||||
rpl.rpl_sync* @windows # Bug#50473 2010-01-20 alik rpl_sync fails on windows debug enabled binaries
|
||||
rpl.rpl_timezone* # Bug#47017 2009-10-27 alik rpl_timezone fails on PB-2 with mismatch error
|
||||
|
||||
sys_vars.max_sp_recursion_depth_func @solaris # Bug#47791 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||
|
||||
# Declare all NDB-tests in ndb and rpl_ndb test suites experimental.
|
||||
# Usually the test cases from ndb and rpl_ndb test suites are not run in PB,
|
||||
# but they run by gcov.
|
||||
|
@ -1,5 +1,5 @@
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --suite=main,binlog,innodb,federated,rpl,sys_vars
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --suite=main,binlog,innodb,federated,rpl
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=embedded --vardir=var-emebbed --embedded --suite=main,binlog,innodb,federated,rpl
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --suite=main,binlog,innodb,federated,rpl,sys_vars,perfschema
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --suite=main,binlog,innodb,federated,rpl,sys_vars,perfschema
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=embedded --vardir=var-emebbed --embedded --suite=main,binlog,innodb,federated,rpl,sys_vars,perfschema
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=rpl_binlog_row --vardir=var-rpl_binlog_row --mysqld=--binlog-format=row --suite=rpl,binlog
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=funcs_1 --vardir=var-funcs_1 --suite=funcs_1
|
||||
|
@ -1,5 +1,5 @@
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --suite=main,binlog,innodb,federated,rpl
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --suite=main,binlog,innodb,federated,rpl
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=embedded --vardir=var-emebbed --embedded --suite=main,binlog,innodb,federated,rpl
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=n_mix --vardir=var-n_mix --mysqld=--binlog-format=mixed --suite=main,binlog,innodb,federated,rpl,sys_vars,perfschema
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=ps_row --vardir=var-ps_row --ps-protocol --mysqld=--binlog-format=row --suite=main,binlog,innodb,federated,rpl,sys_vars,perfschema
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=embedded --vardir=var-emebbed --embedded --suite=main,binlog,innodb,federated,rpl,sys_vars,perfschema
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=rpl_binlog_row --vardir=var-rpl_binlog_row --mysqld=--binlog-format=row --suite=rpl,binlog
|
||||
perl mysql-test-run.pl --timer --force --parallel=auto --experimental=collections/default.experimental --comment=funcs_1 --vardir=var-funcs_1 --suite=funcs_1
|
||||
|
@ -1,300 +0,0 @@
|
||||
################################################################################
|
||||
# Let
|
||||
# - B be begin, C commit and R rollback.
|
||||
# - T a statement that accesses and changes only transactional tables, i.e.
|
||||
# T-tables
|
||||
# - N a statement that accesses and changes only non-transactional tables,
|
||||
# i.e, N-tables.
|
||||
# - M be a mixed statement, i.e. a statement that updates both T- and
|
||||
# N-tables.
|
||||
# - M* be a mixed statement that fails while updating either a T
|
||||
# or N-table.
|
||||
# - N* be a statement that fails while updating a N-table.
|
||||
#
|
||||
# In this test case, when changes are logged as rows either in the RBR or MIXED
|
||||
# modes, we check if a M* statement that happens early in a transaction is
|
||||
# written to the binary log outside the boundaries of the transaction and
|
||||
# wrapped up in a BEGIN/ROLLBACK. This is done to keep the slave consistent with
|
||||
# the master as the rollback will keep the changes on N-tables and undo them on
|
||||
# T-tables. In particular, we expect the following behavior:
|
||||
#
|
||||
# 1. B M* T C would generate in the binlog B M* R B T C.
|
||||
# 2. B M M* C would generate in the binlog B M M* C.
|
||||
# 3. B M* M* T C would generate in the binlog B M* R B M* R B T C.
|
||||
#
|
||||
# SBR is not considered in this test because a failing statement is written to
|
||||
# the binary along with the error code such that a slave executes and rolls it
|
||||
# back, thus undoing the effects on T-tables.
|
||||
#
|
||||
# Note that, in the first case, we are not preserving history from the master as
|
||||
# we are introducing a rollback that never happened. However, this seems to be
|
||||
# more acceptable than making the slave diverge. In the second case, the slave
|
||||
# will diverge as the changes on T-tables that originated from the M statement
|
||||
# are rolled back on the master but not on the slave. Unfortunately, we cannot
|
||||
# simply roll the transaction back as this would undo any uncommitted changes
|
||||
# on T-tables.
|
||||
#
|
||||
# We check two more cases. First, INSERT...SELECT* which produces the following
|
||||
# results:
|
||||
#
|
||||
# 1. B T INSERT M...SELECT* C" with an error in INSERT M...SELECT* generates in
|
||||
# the binlog the following entries: "Nothing".
|
||||
# 2. B INSERT M...SELECT* C" with an error in INSERT M...SELECT* generates in
|
||||
# the binlog the following entries: B INSERT M...SELECT* R.
|
||||
#
|
||||
# Finally, we also check if any N statement that happens early in a transaction
|
||||
# (i.e. before any T or M statement) is written to the binary log outside the
|
||||
# boundaries of the transaction. In particular, we expect the following
|
||||
# behavior:
|
||||
#
|
||||
# 1. B N N T C would generate in the binlog B N C B N C B T C.
|
||||
# 2. B N N T R would generate in the binlog B N C B N C B T R.
|
||||
# 3. B N* N* T C would generate in the binlog B N R B N R B T C.
|
||||
# 4. B N* N* T R would generate in the binlog B N R B N R B T R.
|
||||
# 5. B N N T N T C would generate in the binlog B N C B N C B T N T C.
|
||||
# 6. B N N T N T R would generate in the binlog the B N C B N C B T N T R.
|
||||
#
|
||||
# Such issues do not happen in SBR. In RBR and MBR, a full-fledged fix will be
|
||||
# pushed after the WL#2687.
|
||||
#
|
||||
# Please, remove this test case after pushing WL#2687.
|
||||
################################################################################
|
||||
|
||||
|
||||
--echo ###################################################################################
|
||||
--echo # CONFIGURATION
|
||||
--echo ###################################################################################
|
||||
CREATE TABLE nt_1 (a text, b int PRIMARY KEY) ENGINE = MyISAM;
|
||||
CREATE TABLE nt_2 (a text, b int PRIMARY KEY) ENGINE = MyISAM;
|
||||
CREATE TABLE tt_1 (a text, b int PRIMARY KEY) ENGINE = Innodb;
|
||||
CREATE TABLE tt_2 (a text, b int PRIMARY KEY) ENGINE = Innodb;
|
||||
|
||||
DELIMITER |;
|
||||
|
||||
CREATE TRIGGER tr_i_tt_1_to_nt_1 BEFORE INSERT ON tt_1 FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO nt_1 VALUES (NEW.a, NEW.b);
|
||||
END|
|
||||
|
||||
CREATE TRIGGER tr_i_nt_2_to_tt_2 BEFORE INSERT ON nt_2 FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO tt_2 VALUES (NEW.a, NEW.b);
|
||||
END|
|
||||
|
||||
DELIMITER ;|
|
||||
|
||||
--echo ###################################################################################
|
||||
--echo # CHECK HISTORY IN BINLOG
|
||||
--echo ###################################################################################
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B M* T C" with error in M* generates in the binlog the "B M* R B T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO nt_1 VALUES ("new text 1", 1);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO tt_1 VALUES (USER(), 2), (USER(), 1);
|
||||
INSERT INTO tt_2 VALUES ("new text 3", 3);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO tt_2 VALUES ("new text 4", 4);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2 VALUES (USER(), 5), (USER(), 4);
|
||||
INSERT INTO tt_2 VALUES ("new text 6", 6);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B M M* T C" with error in M* generates in the binlog the "B M M* T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO nt_1 VALUES ("new text 10", 10);
|
||||
BEGIN;
|
||||
INSERT INTO tt_1 VALUES ("new text 7", 7), ("new text 8", 8);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO tt_1 VALUES (USER(), 9), (USER(), 10);
|
||||
INSERT INTO tt_2 VALUES ("new text 11", 11);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO tt_2 VALUES ("new text 15", 15);
|
||||
BEGIN;
|
||||
INSERT INTO nt_2 VALUES ("new text 12", 12), ("new text 13", 13);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2 VALUES (USER(), 14), (USER(), 15);
|
||||
INSERT INTO tt_2 VALUES ("new text 16", 16);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B M* M* T C" with error in M* generates in the binlog the "B M* R B M* R B T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO nt_1 VALUES ("new text 18", 18);
|
||||
INSERT INTO nt_1 VALUES ("new text 20", 20);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO tt_1 VALUES (USER(), 17), (USER(), 18);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO tt_1 VALUES (USER(), 19), (USER(), 20);
|
||||
INSERT INTO tt_2 VALUES ("new text 21", 21);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
INSERT INTO tt_2 VALUES ("new text 23", 23);
|
||||
INSERT INTO tt_2 VALUES ("new text 25", 25);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2 VALUES (USER(), 22), (USER(), 23);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2 VALUES (USER(), 24), (USER(), 25);
|
||||
INSERT INTO tt_2 VALUES ("new text 26", 26);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B T INSERT M...SELECT* C" with an error in INSERT M...SELECT* generates
|
||||
--echo *** in the binlog the following entries: "Nothing".
|
||||
--echo *** There is a bug in that will be fixed after WL#2687. Please, check BUG#47175 for further details.
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
TRUNCATE TABLE nt_2;
|
||||
TRUNCATE TABLE tt_2;
|
||||
INSERT INTO tt_2 VALUES ("new text 7", 7);
|
||||
BEGIN;
|
||||
INSERT INTO tt_2 VALUES ("new text 27", 27);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2(a, b) SELECT USER(), b FROM nt_1;
|
||||
INSERT INTO tt_2 VALUES ("new text 28", 28);
|
||||
ROLLBACK;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B INSERT M..SELECT* C" with an error in INSERT M...SELECT* generates
|
||||
--echo *** in the binlog the following entries: "B INSERT M..SELECT* R".
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
TRUNCATE TABLE nt_2;
|
||||
TRUNCATE TABLE tt_2;
|
||||
INSERT INTO tt_2 VALUES ("new text 7", 7);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_2(a, b) SELECT USER(), b FROM nt_1;
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N N T C" generates in the binlog the "B N C B N C B T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
TRUNCATE TABLE nt_1;
|
||||
TRUNCATE TABLE tt_2;
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 1);
|
||||
INSERT INTO nt_1 VALUES (USER(), 2);
|
||||
INSERT INTO tt_2 VALUES (USER(), 3);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N N T R" generates in the binlog the "B N C B N C B T R" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 4);
|
||||
INSERT INTO nt_1 VALUES (USER(), 5);
|
||||
INSERT INTO tt_2 VALUES (USER(), 6);
|
||||
ROLLBACK;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N* N* T C" with error in N* generates in the binlog the "B N R B N R B T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_1 VALUES (USER(), 7), (USER(), 1);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_1 VALUES (USER(), 8), (USER(), 1);
|
||||
INSERT INTO tt_2 VALUES (USER(), 9);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N* N* T R" with error in N* generates in the binlog the "B N R B N R B T R" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
BEGIN;
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_1 VALUES (USER(), 10), (USER(), 1);
|
||||
--error ER_DUP_ENTRY
|
||||
INSERT INTO nt_1 VALUES (USER(), 11), (USER(), 1);
|
||||
INSERT INTO tt_2 VALUES (USER(), 12);
|
||||
ROLLBACK;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N N T N T C" generates in the binlog the "B N C B N C B T N T C" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 13);
|
||||
INSERT INTO nt_1 VALUES (USER(), 14);
|
||||
INSERT INTO tt_2 VALUES (USER(), 15);
|
||||
INSERT INTO nt_1 VALUES (USER(), 16);
|
||||
INSERT INTO tt_2 VALUES (USER(), 17);
|
||||
COMMIT;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo
|
||||
--echo
|
||||
--echo
|
||||
--echo *** "B N N T N T R" generates in the binlog the "B N C B N C B T N T R" entries
|
||||
--echo
|
||||
let $binlog_start= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 18);
|
||||
INSERT INTO nt_1 VALUES (USER(), 19);
|
||||
INSERT INTO tt_2 VALUES (USER(), 20);
|
||||
INSERT INTO nt_1 VALUES (USER(), 21);
|
||||
INSERT INTO tt_2 VALUES (USER(), 22);
|
||||
ROLLBACK;
|
||||
--source include/show_binlog_events.inc
|
||||
|
||||
--echo ###################################################################################
|
||||
--echo # CLEAN
|
||||
--echo ###################################################################################
|
||||
|
||||
DROP TABLE tt_1;
|
||||
DROP TABLE tt_2;
|
||||
DROP TABLE nt_1;
|
||||
DROP TABLE nt_2;
|
@ -6,6 +6,8 @@
|
||||
-- source include/have_blackhole.inc
|
||||
-- source include/have_log_bin.inc
|
||||
|
||||
CALL mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
|
||||
# The server need to be started in $MYSQLTEST_VARDIR since it
|
||||
# uses ../../std_data/
|
||||
-- source include/uses_vardir.inc
|
||||
|
@ -8,6 +8,7 @@
|
||||
-- source include/have_log_bin.inc
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2;
|
||||
@ -323,23 +324,24 @@ let $MYSQLD_DATADIR= `select @@datadir`;
|
||||
# and does not make slave to stop)
|
||||
if (`select @@binlog_format = 'ROW'`)
|
||||
{
|
||||
--exec $MYSQL_BINLOG --start-position=525 $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output
|
||||
--echo This does not matter in ROW mode as the rolled back changes do not contain transactional changes as these
|
||||
--echo were previously flushed upon committing/rolling back each statement.
|
||||
}
|
||||
|
||||
if (`select @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
--exec $MYSQL_BINLOG --start-position=556 $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output
|
||||
}
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
eval select
|
||||
(@a:=load_file("$MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
|
||||
is not null;
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
eval select
|
||||
@a like "%#%error_code=0%ROLLBACK\\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" OR
|
||||
@a like "%#%error_code=0%ROLLBACK\\r\\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%",
|
||||
@a not like "%#%error_code=%error_code=%";
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
eval select
|
||||
(@a:=load_file("$MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
|
||||
is not null;
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
eval select
|
||||
@a like "%#%error_code=0%ROLLBACK\\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" OR
|
||||
@a like "%#%error_code=0%ROLLBACK\\r\\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%",
|
||||
@a not like "%#%error_code=%error_code=%";
|
||||
}
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
|
52
mysql-test/extra/rpl_tests/check_type.inc
Normal file
52
mysql-test/extra/rpl_tests/check_type.inc
Normal file
@ -0,0 +1,52 @@
|
||||
# Helper file to perform one insert of a value into a table with
|
||||
# different types on master and slave. The file will insert the
|
||||
# result into the type_conversions table *on the slave* to get a
|
||||
# summary of failing and succeeding tests.
|
||||
|
||||
# Input:
|
||||
# $source_type Type on the master
|
||||
# $target_type Type on the slave
|
||||
# $source_value Value on the master (inserted into the table)
|
||||
# $target_value Value on the slave (expected value in the table
|
||||
# on the slave)
|
||||
# $can_convert True if conversion shall work, false if it
|
||||
# shall generate an error
|
||||
|
||||
|
||||
connection master;
|
||||
disable_warnings;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
enable_warnings;
|
||||
eval CREATE TABLE t1 (a $source_type);
|
||||
sync_slave_with_master;
|
||||
eval ALTER TABLE t1 MODIFY a $target_type;
|
||||
|
||||
connection master;
|
||||
eval INSERT INTO t1 VALUES($source_value);
|
||||
if ($can_convert) {
|
||||
sync_slave_with_master;
|
||||
eval SELECT a = $target_value into @compare FROM t1;
|
||||
eval INSERT INTO type_conversions SET
|
||||
Source = "$source_type",
|
||||
Target = "$target_type",
|
||||
Flags = @@slave_type_conversions,
|
||||
On_Master = $source_value,
|
||||
Expected = $target_value,
|
||||
Compare = @compare;
|
||||
UPDATE type_conversions
|
||||
SET On_Slave = (SELECT a FROM t1)
|
||||
WHERE TestNo = LAST_INSERT_ID();
|
||||
}
|
||||
if (!$can_convert) {
|
||||
connection slave;
|
||||
wait_for_slave_to_stop;
|
||||
let $error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1);
|
||||
eval INSERT INTO type_conversions SET
|
||||
Source = "$source_type",
|
||||
Target = "$target_type",
|
||||
Flags = @@slave_type_conversions,
|
||||
On_Master = $source_value,
|
||||
Error = "$error";
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
|
||||
START SLAVE;
|
||||
}
|
400
mysql-test/extra/rpl_tests/create_recursive_construct.inc
Normal file
400
mysql-test/extra/rpl_tests/create_recursive_construct.inc
Normal file
@ -0,0 +1,400 @@
|
||||
# ==== Purpose ====
|
||||
#
|
||||
# Creates a stored routine, stored function, trigger, view, or
|
||||
# prepared statement (commonly referred to as "recursive construct")
|
||||
# that invokes a given unsafe statement.
|
||||
#
|
||||
# Then, it invokes the created recursive construct several times:
|
||||
#
|
||||
# - With SQL_LOG_BIN = 1 and binlog_format = STATEMENT, to verify
|
||||
# that it gives a warning.
|
||||
#
|
||||
# - With SQL_LOG_BIN = 0 and binlog_format = STATEMENT, to verify that
|
||||
# there is no warning and nothing is logged.
|
||||
#
|
||||
# - With SQL_LOG_BIN = 1 and binlog_format = MIXED, to verify that it
|
||||
# writes row events to the binlog.
|
||||
#
|
||||
# - In some cases, the recursive construct can be invoked so that it
|
||||
# has no side-effects but returns a value that may be
|
||||
# nondeterministic. An example is a function that returns UUID().
|
||||
# The function does not have side effects but its a return value
|
||||
# that may differ on slave. Such statements are invoked so that
|
||||
# the return value is discarded (e.g., SELECT func()), with
|
||||
# SQL_LOG_BIN = 1 and binlog_format = STATEMENT. In this case, no
|
||||
# warning should be given and nothing should be written to the
|
||||
# binlog.
|
||||
#
|
||||
# This is an auxiliary file particularly targeted to being used by the
|
||||
# test binlog_unsafe. In this context, the purpose is to check how
|
||||
# warnings for unsafe statements are propagated in recursive
|
||||
# constructs.
|
||||
#
|
||||
# The statement to invoke ("input") is described using mtr variables,
|
||||
# and the resulting recursive construct ("output") is stored in mtr
|
||||
# variables in a similar fashion. To create several levels of nested
|
||||
# recursive constructs, source this file once, then copy the values of
|
||||
# appropriate output variables to the input variables, and then source
|
||||
# this file again.
|
||||
#
|
||||
#
|
||||
# ==== Usage ====
|
||||
#
|
||||
# See binlog_unsafe for an example of how to use this file.
|
||||
#
|
||||
# let $CRC_ARG_level= <level>;
|
||||
# let $CRC_ARG_type= <type>;
|
||||
# let $CRC_ARG_stmt_sidef= <stmt>;
|
||||
# let $CRC_ARG_value= <stmt>;
|
||||
# let $CRC_ARG_sel_retval= <stmt>;
|
||||
# let $CRC_ARG_sel_sidef= <stmt>;
|
||||
# let $CRC_ARG_desc= <desc>;
|
||||
# source extra/rpl_tests/create_recursive_construct.inc;
|
||||
# let $my_stmt_sidef= $CRC_RET_stmt_sidef;
|
||||
# let $my_value= $CRC_RET_value;
|
||||
# let $my_sel_sidef= $CRC_RET_sel_sidef;
|
||||
# let $my_sel_retval= $CRC_RET_sel_retval;
|
||||
# let $my_drop= $CRC_RET_drop;
|
||||
# let $my_is_toplevel= $CRC_RET_top_is_toplevel;
|
||||
# let $my_desc= $CRC_RET_desc;
|
||||
#
|
||||
# $CRC_ARG_* are used as input parameters (arguments) to this file:
|
||||
#
|
||||
# $CRC_ARG_level is the recursion depth: 1 for the innermost
|
||||
# statement created, 2 for a statement that invokes a statement on
|
||||
# level 1, etc.
|
||||
#
|
||||
# $CRC_ARG_type is an integer from 0 to 6, indicating what type of
|
||||
# statement shall be created:
|
||||
# 0 - Create a stored function where the return value depends on
|
||||
# the value of the given statement.
|
||||
# 1 - Create a stored function that invokes the given statement as
|
||||
# a side-effect but may not return a value that depends on it.
|
||||
# 2 - Create a stored routine that invokes the given statement.
|
||||
# 3 - Create a trigger (on table trigger_table_$CRC_ARG_level) that
|
||||
# invokes the given statement.
|
||||
# 4 - Create a view that returns a value that depends on the value
|
||||
# of the given statement.
|
||||
# 5 - Create a view that invokes the given statement but may return
|
||||
# a value that does not depend on it.
|
||||
# 6 - Create a prepared statement that invokes the given statement.
|
||||
#
|
||||
# $CRC_ARG_stmt_sidef is the statement to invoke. It should be a
|
||||
# statement that can be invoked on its own (not sub-statement),
|
||||
# which causes something unsafe to be written to the binlog.
|
||||
#
|
||||
# $CRC_ARG_value is a sub-statement holding the value of the given
|
||||
# statement. Can be empty if the given statement does not have a
|
||||
# value. Typically, this is non-empty if the given statement is a
|
||||
# function call or user variable, but not if it is a stored routine
|
||||
# call, INSERT, SELECT, etc (because none of them has a value).
|
||||
# $CRC_ARG_value is used only when $CRC_ARG_type=6.
|
||||
#
|
||||
# $CRC_ARG_sel_sidef is a SELECT sub-statement that invokes the
|
||||
# statement as a side-effect, but returns a result set that may not
|
||||
# depend on the statement. Can be empty if the statement cannot
|
||||
# produce a result set from a SELECT. $CRC_ARG_sel_sidef is used
|
||||
# only if $CRC_ARG_type=2
|
||||
#
|
||||
# $CRC_ARG_sel_retval is a SELECT sub-statement that does not have
|
||||
# side-effects, but returns a result set that depends on the unsafe
|
||||
# statement. Can be empty if the statement cannot be invoked from a
|
||||
# SELECT. $CRC_ARG_sel_retval is used only if $CRC_ARG_type=3.
|
||||
#
|
||||
# $CRC_ARG_desc is a human-readable description of the statement to
|
||||
# invoke.
|
||||
#
|
||||
# $CRC_RET_* are used as output parameters (return values) of this
|
||||
# file:
|
||||
#
|
||||
# $CRC_RET_stmt_sidef is a statement invoking the resulting recursive
|
||||
# construct.
|
||||
#
|
||||
# $CRC_RET_value is a sub-statement invoking the resulting recursive
|
||||
# construct and returning the value of the recursive construct.
|
||||
# This is the empty string if the resulting recursive construct does
|
||||
# not have a value. In particular, this is non-empty only if
|
||||
# $CRC_ARG_value=7.
|
||||
#
|
||||
# $CRC_RET_sel_sidef is a SELECT sub-statement that invokes the
|
||||
# resulting recursive construct as a side-effect but where the
|
||||
# result set may not depend on the recursive construct. This is the
|
||||
# empty string if the recursive construct cannot be invoked from a
|
||||
# SELECT. In particular, this is non-empty only if $CRC_ARG_value=6
|
||||
# or $CRC_ARG_value=2.
|
||||
#
|
||||
# $CRC_RET_sel_retval is a SELECT sub-statement that does not have
|
||||
# side-effects, but returns a result set depending on the unsafe
|
||||
# statement. This is the empty string if the recursive construct
|
||||
# cannot produce a result set from a SELECT. In particular, this is
|
||||
# non-empty only if $CRC_ARG_value=7 or $CRC_ARG_value=3.
|
||||
#
|
||||
# $CRC_RET_drop is a statement that drops the created object. I.e.,
|
||||
# it is one of 'DROP FUNCTION <func>', 'DROP PROCEDURE <proc>', etc.
|
||||
#
|
||||
# $CRC_RET_top_is_toplevel is 0 normally, or 1 if the resulting
|
||||
# recursive construct can only be called from a top-level statement.
|
||||
# In particular, this is 1 only when $CRC_ARG_value=1, because
|
||||
# prepared statements cannot be invoked from other recursive
|
||||
# constructs.
|
||||
#
|
||||
# $CRC_RET_desc is a text string that describes the invokation of
|
||||
# the recursive construct in a human-readable fashion.
|
||||
#
|
||||
# Assumptions
|
||||
#
|
||||
# Before sourcing this file with $CRC_ARG_level=X, you need to
|
||||
# create three tables: tX, taX and trigger_table_X. These are used
|
||||
# as auxiliary tables.
|
||||
|
||||
|
||||
#--echo debug: >>>>ENTER create_recursive_construct
|
||||
#--echo debug: level=$CRC_ARG_level
|
||||
#--echo debug: type=$CRC_ARG_type
|
||||
#--echo debug: stmt_sidef=$CRC_ARG_stmt_sidef
|
||||
#--echo debug: value=$CRC_ARG_value
|
||||
#--echo debug: sel_retval=$CRC_ARG_sel_retval
|
||||
#--echo debug: sel_sidef=$CRC_ARG_sel_sidef
|
||||
|
||||
--let $CRC_RET_stmt_sidef=
|
||||
--let $CRC_RET_value=
|
||||
--let $CRC_RET_sel_retval=
|
||||
--let $CRC_RET_sel_sidef=
|
||||
--let $CRC_RET_drop=
|
||||
--let $CRC_RET_is_toplevel= 1
|
||||
--let $CRC_RET_desc=
|
||||
--let $CRC_name=
|
||||
--let $CRC_create=
|
||||
|
||||
######## func_retval ########
|
||||
if (`SELECT $CRC_ARG_type = 0 AND '$CRC_ARG_value' != ''`) {
|
||||
# It will be safe to call this function and discard the return
|
||||
# value, but it will be unsafe to use return value (e.g., in
|
||||
# INSERT...SELECT).
|
||||
--let $CRC_name= func_retval_$CRC_ARG_level
|
||||
--let $CRC_create= CREATE FUNCTION $CRC_name() RETURNS VARCHAR(100) BEGIN INSERT INTO ta$CRC_ARG_level VALUES (47); RETURN $CRC_ARG_value; END
|
||||
--let $CRC_RET_stmt_sidef= INSERT INTO t$CRC_ARG_level VALUES ($CRC_name())
|
||||
--let $CRC_RET_value= $CRC_name()
|
||||
--let $CRC_RET_sel_sidef=
|
||||
--let $CRC_RET_sel_retval= SELECT $CRC_name()
|
||||
--let $CRC_RET_drop= DROP FUNCTION $CRC_name
|
||||
--let $CRC_RET_is_toplevel= 0
|
||||
--let $CRC_RET_desc= function $CRC_name returning value from $CRC_ARG_desc
|
||||
}
|
||||
|
||||
######## func_sidef ########
|
||||
if (`SELECT $CRC_ARG_type = 1`) {
|
||||
# It will be unsafe to call func even if you discard return value.
|
||||
--let $CRC_name= func_sidef_$CRC_ARG_level
|
||||
--let $CRC_create= CREATE FUNCTION $CRC_name() RETURNS VARCHAR(100) BEGIN INSERT INTO ta$CRC_ARG_level VALUES (47); $CRC_ARG_stmt_sidef; RETURN 0; END
|
||||
--let $CRC_RET_stmt_sidef= INSERT INTO t$CRC_ARG_level SELECT $CRC_name()
|
||||
--let $CRC_RET_value=
|
||||
--let $CRC_RET_sel_retval=
|
||||
--let $CRC_RET_sel_sidef= SELECT $CRC_name()
|
||||
--let $CRC_RET_drop= DROP FUNCTION $CRC_name
|
||||
--let $CRC_RET_is_toplevel= 0
|
||||
--let $CRC_RET_desc= function $CRC_name invoking $CRC_ARG_desc
|
||||
}
|
||||
|
||||
######## proc ########
|
||||
if (`SELECT $CRC_ARG_type = 2`) {
|
||||
# It will be unsafe to call this procedure.
|
||||
--let $CRC_name= proc_$CRC_ARG_level
|
||||
--let $CRC_create= CREATE PROCEDURE $CRC_name() BEGIN INSERT INTO ta$CRC_ARG_level VALUES (47); $CRC_ARG_stmt_sidef; END
|
||||
--let $CRC_RET_stmt_sidef= CALL $CRC_name()
|
||||
--let $CRC_RET_value=
|
||||
--let $CRC_RET_sel_retval=
|
||||
--let $CRC_RET_sel_sidef=
|
||||
--let $CRC_RET_drop= DROP PROCEDURE $CRC_name
|
||||
--let $CRC_RET_is_toplevel= 0
|
||||
--let $CRC_RET_desc= procedure $CRC_name invoking $CRC_ARG_desc
|
||||
}
|
||||
|
||||
######## trig ########
|
||||
if (`SELECT $CRC_ARG_type = 3`) {
|
||||
# It will be unsafe to invoke this trigger.
|
||||
--let $CRC_name= trig_$CRC_ARG_level
|
||||
--let $CRC_create= CREATE TRIGGER $CRC_name BEFORE INSERT ON trigger_table_$CRC_ARG_level FOR EACH ROW BEGIN INSERT INTO ta$CRC_ARG_level VALUES (47); $CRC_ARG_stmt_sidef; END
|
||||
--let $CRC_RET_stmt_sidef= INSERT INTO trigger_table_$CRC_ARG_level VALUES (1)
|
||||
--let $CRC_RET_value=
|
||||
--let $CRC_RET_sel_retval=
|
||||
--let $CRC_RET_sel_sidef=
|
||||
--let $CRC_RET_drop= DROP TRIGGER $CRC_name
|
||||
--let $CRC_RET_is_toplevel= 0
|
||||
--let $CRC_RET_desc= trigger $CRC_name invoking $CRC_ARG_desc
|
||||
}
|
||||
|
||||
######## view_retval ########
|
||||
if (`SELECT $CRC_ARG_type = 4 AND '$CRC_ARG_sel_retval' != ''`) {
|
||||
# It will be safe to select from this view if you discard the result
|
||||
# set, but unsafe to use result set (e.g., in INSERT..SELECT).
|
||||
--let $CRC_name= view_retval_$CRC_ARG_level
|
||||
--let $CRC_create= CREATE VIEW $CRC_name AS $CRC_ARG_sel_retval
|
||||
--let $CRC_RET_stmt_sidef= INSERT INTO t$CRC_ARG_LEVEL SELECT * FROM $CRC_name
|
||||
--let $CRC_RET_value=
|
||||
--let $CRC_RET_sel_retval= SELECT * FROM $CRC_name
|
||||
--let $CRC_RET_sel_sidef=
|
||||
--let $CRC_RET_drop= DROP VIEW $CRC_name
|
||||
--let $CRC_RET_is_toplevel= 0
|
||||
--let $CRC_RET_desc= view $CRC_name returning value from $CRC_ARG_desc
|
||||
}
|
||||
|
||||
######## view_sidef ########
|
||||
if (`SELECT $CRC_ARG_type = 5 AND '$CRC_ARG_sel_sidef' != ''`) {
|
||||
# It will be unsafe to select from this view, even if you discard
|
||||
# the return value.
|
||||
--let $CRC_name= view_sidef_$CRC_ARG_level
|
||||
--let $CRC_create= CREATE VIEW $CRC_name AS $CRC_ARG_sel_sidef
|
||||
--let $CRC_RET_stmt_sidef= INSERT INTO t$CRC_ARG_level SELECT * FROM $CRC_name
|
||||
--let $CRC_RET_value=
|
||||
--let $CRC_RET_sel_retval=
|
||||
--let $CRC_RET_sel_sidef= SELECT * FROM $CRC_name
|
||||
--let $CRC_RET_drop= DROP VIEW $CRC_name
|
||||
--let $CRC_RET_is_toplevel= 0
|
||||
--let $CRC_RET_desc= view $CRC_name invoking $CRC_ARG_desc
|
||||
}
|
||||
|
||||
######## prep ########
|
||||
if (`SELECT $CRC_ARG_type = 6`) {
|
||||
# It will be unsafe to execute this prepared statement
|
||||
--let $CRC_name= prep_$CRC_ARG_level
|
||||
--let $CRC_create= PREPARE $CRC_name FROM "$CRC_ARG_stmt_sidef"
|
||||
--let $CRC_RET_stmt_sidef= EXECUTE $CRC_name
|
||||
--let $CRC_RET_value=
|
||||
--let $CRC_RET_sel_retval=
|
||||
--let $CRC_RET_sel_sidef=
|
||||
--let $CRC_RET_drop= DROP PREPARE $CRC_name
|
||||
--let $CRC_RET_is_toplevel= 1
|
||||
--let $CRC_RET_desc= prepared statement $CRC_name invoking $CRC_ARG_desc
|
||||
}
|
||||
|
||||
######## no recursive construct: just return the given statement ########
|
||||
if (`SELECT $CRC_ARG_type = 7`) {
|
||||
# CRC_ARG_type=7 is a special case. We just set $CRC_RET_x =
|
||||
# $CRC_ARG_x. This way, the $CRC_ARG_stmt gets executed directly
|
||||
# (below). In binlog_unsafe.test, it is used to invoke the unsafe
|
||||
# statement created in the outermost loop directly, without
|
||||
# enclosing it in a recursive construct.
|
||||
--let $CRC_RET_stmt_sidef= $CRC_ARG_stmt_sidef
|
||||
--let $CRC_RET_value= $CRC_ARG_value
|
||||
--let $CRC_RET_sel_retval= $CRC_ARG_sel_retval
|
||||
--let $CRC_RET_sel_sidef= $CRC_ARG_sel_sidef
|
||||
--let $CRC_RET_drop=
|
||||
--let $CRC_RET_is_toplevel= 1
|
||||
--let $CRC_RET_desc= $CRC_ARG_desc
|
||||
}
|
||||
|
||||
######## execute! ########
|
||||
if (`SELECT '$CRC_RET_stmt_sidef' != ''`) {
|
||||
--echo
|
||||
--echo Invoking $CRC_RET_desc.
|
||||
if (`SELECT '$CRC_create' != ''`) {
|
||||
--eval $CRC_create
|
||||
}
|
||||
|
||||
--echo * binlog_format = STATEMENT: expect $CRC_ARG_expected_number_of_warnings warnings.
|
||||
--eval $CRC_RET_stmt_sidef
|
||||
--let $n_warnings= `SHOW COUNT(*) WARNINGS`
|
||||
if (`SELECT '$n_warnings' != '$CRC_ARG_expected_number_of_warnings'`) {
|
||||
--echo ******** Failure! Expected $CRC_ARG_expected_number_of_warnings warnings, got $n_warnings warnings. ********
|
||||
SHOW WARNINGS;
|
||||
SHOW BINLOG EVENTS;
|
||||
--die Wrong number of warnings.
|
||||
}
|
||||
|
||||
# These queries are run without query log, to make result file more
|
||||
# readable. Debug info is only printed if something abnormal
|
||||
# happens.
|
||||
--disable_query_log
|
||||
|
||||
--echo * SQL_LOG_BIN = 0: expect nothing logged and no warning.
|
||||
SET SQL_LOG_BIN = 0;
|
||||
RESET MASTER;
|
||||
--eval $CRC_RET_stmt_sidef
|
||||
--let $n_warnings= `SHOW COUNT(*) WARNINGS`
|
||||
if (`SELECT '$n_warnings' != '0'`) {
|
||||
--echo ******** Failure! Expected 0 warnings, got $n_warnings warnings. ********
|
||||
SHOW WARNINGS;
|
||||
SHOW BINLOG EVENTS;
|
||||
--die Wrong number of warnings.
|
||||
}
|
||||
--let $binlog_event= query_get_value(SHOW BINLOG EVENTS, Event_type, 2)
|
||||
if (`SELECT '$binlog_event' != 'No such row'`) {
|
||||
--enable_query_log
|
||||
--echo ******** Failure! Something was written to the binlog despite SQL_LOG_BIN=0 ********
|
||||
SHOW BINLOG EVENTS;
|
||||
--die Binlog not empty
|
||||
}
|
||||
SET SQL_LOG_BIN = 1;
|
||||
|
||||
--echo * binlog_format = MIXED: expect row events in binlog and no warning.
|
||||
SET binlog_format = MIXED;
|
||||
RESET MASTER;
|
||||
--eval $CRC_RET_stmt_sidef
|
||||
--let $n_warnings= `SHOW COUNT(*) WARNINGS`
|
||||
if (`SELECT '$n_warnings' != '0'`) {
|
||||
--echo ******** Failure! Expected 0 warnings, got $n_warnings warnings. ********
|
||||
SHOW WARNINGS;
|
||||
SHOW BINLOG EVENTS;
|
||||
--die Warnings printed
|
||||
}
|
||||
# The first event is format_description, the second is
|
||||
# Query_event('BEGIN'), and the third should be our Table_map.
|
||||
--let $event_type= query_get_value(SHOW BINLOG EVENTS, Event_type, 3)
|
||||
if (`SELECT '$event_type' != 'Table_map'`) {
|
||||
--enable_query_log
|
||||
--echo ******** Failure! Event number 3 was a '$event_type', not a 'Table_map'. ********
|
||||
|
||||
# Currently, there is a bug causing some statements to be logged
|
||||
# partially in statement format. Hence, we don't fail here, we
|
||||
# just print the events (masking out nondeterministic components
|
||||
# of the output) and continue. When binloggging works perfectly,
|
||||
# we should instead execute:
|
||||
#--enable_query_log
|
||||
#SHOW BINLOG EVENTS;
|
||||
#--die Wrong events in binlog.
|
||||
|
||||
# Here, we should really source
|
||||
# include/show_binlog_events.inc. But due to BUG#41913, that
|
||||
# doesn't work, and we have to inline the entire file here. Sigh
|
||||
# :-(
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR 107 <binlog_start>
|
||||
--replace_column 2 # 4 # 5 #
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ /file_id=[0-9]+/file_id=#/ /block_len=[0-9]+/block_len=#/
|
||||
--eval SHOW BINLOG EVENTS FROM 107
|
||||
--disable_query_log
|
||||
}
|
||||
SET binlog_format = STATEMENT;
|
||||
|
||||
--enable_query_log
|
||||
}
|
||||
|
||||
# Invoke created object, discarding the return value. This should not
|
||||
# give any warning.
|
||||
if (`SELECT '$CRC_RET_sel_retval' != ''`) {
|
||||
--echo * Invoke statement so that return value is dicarded: expect no warning.
|
||||
--disable_result_log
|
||||
--eval $CRC_RET_sel_retval
|
||||
--enable_result_log
|
||||
|
||||
# Currently, due to a bug, we do get warnings here, so we don't
|
||||
# fail. When the bug is fixed, we should execute the following.
|
||||
|
||||
#--let $n_warnings= `SHOW COUNT(*) WARNINGS`
|
||||
#if (`SELECT '$n_warnings' != '0'`) {
|
||||
# --enable_query_log
|
||||
# --echo Failure! Expected 0 warnings, got $n_warnings warnings.
|
||||
# SHOW WARNINGS;
|
||||
# SHOW BINLOG EVENTS;
|
||||
# --die Wrong number of warnings.
|
||||
#}
|
||||
}
|
||||
|
||||
#--echo debug: <<<<EXIT create_recursive_construct
|
||||
#--echo debug: stmt_sidef=$CRC_RET_stmt_sidef
|
||||
#--echo debug: value=$CRC_RET_value
|
||||
#--echo debug: sel_retval=$CRC_RET_sel_retval
|
||||
#--echo debug: sel_sidef=$CRC_RET_sel_sidef
|
||||
#--echo debug: drop=$CRC_RET_drop
|
||||
#--echo debug: is_toplevel=$CRC_RET_is_toplevel
|
||||
#--echo debug: desc=$CRC_RET_desc
|
@ -22,13 +22,7 @@
|
||||
#
|
||||
########################################################################################
|
||||
|
||||
########################################################################################
|
||||
# Configuring the environment
|
||||
########################################################################################
|
||||
--source include/have_innodb.inc
|
||||
--source include/master-slave.inc
|
||||
--source include/not_embedded.inc
|
||||
--source include/not_windows.inc
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
|
||||
CREATE TABLE t1(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=Innodb;
|
||||
CREATE TABLE t2(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=MyIsam;
|
||||
@ -50,30 +44,18 @@ eval INSERT INTO t1 (a, data) VALUES (1,
|
||||
--enable_query_log
|
||||
|
||||
--echo *** Single statement on non-transactional table ***
|
||||
--echo *** After WL#2687 the difference between STATEMENT/MIXED and ROW will not exist. ***
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
if (`SELECT @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
eval INSERT INTO t2 (a, data) VALUES (2,
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
eval INSERT INTO t2 (a, data) VALUES (2,
|
||||
CONCAT($data, $data, $data, $data, $data, $data));
|
||||
--echo Got one of the listed errors
|
||||
}
|
||||
if (`SELECT @@binlog_format = 'ROW'`)
|
||||
{
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
eval INSERT INTO t2 (a, data) VALUES (2,
|
||||
CONCAT($data, $data, $data, $data, $data, $data));
|
||||
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
|
||||
START SLAVE SQL_THREAD;
|
||||
--source include/wait_for_slave_sql_to_start.inc
|
||||
}
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
|
||||
START SLAVE SQL_THREAD;
|
||||
--source include/wait_for_slave_sql_to_start.inc
|
||||
|
||||
connection master;
|
||||
|
||||
--disable_query_log
|
||||
@ -86,7 +68,6 @@ eval INSERT INTO t2 (a, data) VALUES (5, $data);
|
||||
--enable_query_log
|
||||
|
||||
--echo *** Single statement on both transactional and non-transactional tables. ***
|
||||
--echo *** After WL#2687 we will be able to change the order of the tables. ***
|
||||
--disable_query_log
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
eval UPDATE t2, t1 SET t2.data = CONCAT($data, $data, $data, $data),
|
||||
@ -95,13 +76,25 @@ eval UPDATE t2, t1 SET t2.data = CONCAT($data, $data, $data, $data),
|
||||
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
|
||||
|
||||
if (`SELECT @@binlog_format = 'STATEMENT'`)
|
||||
{
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
|
||||
}
|
||||
if (`SELECT @@binlog_format = 'ROW' || @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 2;
|
||||
}
|
||||
START SLAVE SQL_THREAD;
|
||||
--source include/wait_for_slave_sql_to_start.inc
|
||||
connection master;
|
||||
|
||||
#--echo ########################################################################################
|
||||
#--echo # 2 - BEGIN - IMPLICIT COMMIT by DDL
|
||||
#--echo ########################################################################################
|
||||
let $diff_statement= SELECT * FROM t1;
|
||||
--source include/diff_master_slave.inc
|
||||
|
||||
--echo ########################################################################################
|
||||
--echo # 2 - BEGIN - IMPLICIT COMMIT by DDL
|
||||
--echo ########################################################################################
|
||||
|
||||
connection master;
|
||||
TRUNCATE TABLE t1;
|
||||
@ -149,14 +142,13 @@ BEGIN;
|
||||
--eval INSERT INTO t1 (a, data) VALUES (21, 's');
|
||||
--enable_query_log
|
||||
|
||||
if (`SELECT @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`)
|
||||
if (`SELECT @@binlog_format = 'STATEMENT'`)
|
||||
{
|
||||
--disable_query_log
|
||||
CREATE TABLE t4 SELECT * FROM t1;
|
||||
--enable_query_log
|
||||
--echo Got one of the listed errors
|
||||
}
|
||||
if (`SELECT @@binlog_format = 'ROW'`)
|
||||
if (`SELECT @@binlog_format = 'ROW' || @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
--disable_query_log
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
@ -186,6 +178,17 @@ BEGIN;
|
||||
CREATE TABLE t5 (a int);
|
||||
--enable_query_log
|
||||
|
||||
if (`SELECT @@binlog_format = 'ROW' || @@binlog_format = 'MIXED'` )
|
||||
{
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
|
||||
START SLAVE SQL_THREAD;
|
||||
--source include/wait_for_slave_sql_to_start.inc
|
||||
connection master;
|
||||
}
|
||||
|
||||
let $diff_statement= SELECT * FROM t1;
|
||||
--source include/diff_master_slave.inc
|
||||
|
||||
@ -341,16 +344,30 @@ BEGIN;
|
||||
--eval INSERT INTO t1 (a, data) VALUES (1, $data);
|
||||
--eval INSERT INTO t1 (a, data) VALUES (2, $data);
|
||||
--eval INSERT INTO t2 (a, data) VALUES (3, $data);
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (4, $data);
|
||||
if (`SELECT @@binlog_format = 'STATEMENT'`)
|
||||
{
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (4, $data);
|
||||
}
|
||||
if (`SELECT @@binlog_format = 'ROW' || @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
--eval INSERT INTO t1 (a, data) VALUES (4, $data);
|
||||
}
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (5, $data);
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (6, $data);
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (7, $data);
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval UPDATE t2 SET data= CONCAT($data, $data);
|
||||
if (`SELECT @@binlog_format = 'STATEMENT'`)
|
||||
{
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval UPDATE t2 SET data= CONCAT($data, $data);
|
||||
}
|
||||
if (`SELECT @@binlog_format = 'ROW' || @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
--eval UPDATE t2 SET data= CONCAT($data, $data);
|
||||
}
|
||||
--eval INSERT INTO t1 (a, data) VALUES (8, 's');
|
||||
--eval INSERT INTO t1 (a, data) VALUES (9, 's');
|
||||
--eval INSERT INTO t2 (a, data) VALUES (10, 's');
|
||||
@ -363,19 +380,38 @@ BEGIN;
|
||||
--eval INSERT INTO t1 (a, data) VALUES (15, $data);
|
||||
--eval INSERT INTO t1 (a, data) VALUES (16, $data);
|
||||
--eval INSERT INTO t2 (a, data) VALUES (17, $data);
|
||||
if (`SELECT @@binlog_format = 'STATEMENT'`)
|
||||
{
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (18, $data);
|
||||
}
|
||||
if (`SELECT @@binlog_format = 'ROW' || @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
--eval INSERT INTO t1 (a, data) VALUES (18, $data);
|
||||
}
|
||||
--error ER_TRANS_CACHE_FULL, ER_ERROR_ON_WRITE
|
||||
--eval INSERT INTO t1 (a, data) VALUES (18, $data);
|
||||
--eval INSERT INTO t1 (a, data) VALUES (19, $data);
|
||||
--enable_query_log
|
||||
COMMIT;
|
||||
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
if (`SELECT @@binlog_format = 'STATEMENT'`)
|
||||
{
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
|
||||
START SLAVE SQL_THREAD;
|
||||
--source include/wait_for_slave_sql_to_start.inc
|
||||
connection master;
|
||||
}
|
||||
|
||||
let $diff_statement= SELECT * FROM t1;
|
||||
--source include/diff_master_slave.inc
|
||||
|
||||
--echo ########################################################################################
|
||||
--echo # CLEAN
|
||||
--echo ########################################################################################
|
||||
|
||||
--disable_warnings
|
||||
connection master;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
@ -384,12 +420,4 @@ DROP TABLE IF EXISTS t4;
|
||||
DROP TABLE IF EXISTS t5;
|
||||
DROP TABLE IF EXISTS t6;
|
||||
DROP PROCEDURE p1;
|
||||
connection slave;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t3;
|
||||
DROP TABLE IF EXISTS t4;
|
||||
DROP TABLE IF EXISTS t5;
|
||||
DROP TABLE IF EXISTS t6;
|
||||
DROP PROCEDURE p1;
|
||||
--enable_warnings
|
||||
sync_slave_with_master;
|
@ -36,6 +36,9 @@ sync_slave_with_master;
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
|
||||
SET @saved_slave_type_conversions = @@slave_type_conversions;
|
||||
SET GLOBAL SLAVE_TYPE_CONVERSIONS = 'ALL_NON_LOSSY';
|
||||
|
||||
eval CREATE TABLE t1 (a INT, b INT PRIMARY KEY, c CHAR(20),
|
||||
d FLOAT DEFAULT '2.00',
|
||||
e CHAR(4) DEFAULT 'TEST')
|
||||
@ -62,6 +65,8 @@ SELECT * FROM t1 ORDER BY a;
|
||||
sync_slave_with_master;
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
|
||||
SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions;
|
||||
|
||||
--echo *** Drop t1 ***
|
||||
connection master;
|
||||
DROP TABLE t1;
|
||||
@ -97,9 +102,8 @@ SELECT * FROM t2 ORDER BY a;
|
||||
connection slave;
|
||||
START SLAVE;
|
||||
source include/wait_for_slave_sql_to_stop.inc;
|
||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||
--replace_column 1 # 4 # 7 # 8 # 9 # 16 # 22 # 23 # 33 # 35 # 36 #
|
||||
--query_vertical SHOW SLAVE STATUS
|
||||
--let $errno= query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1)
|
||||
--echo Slave failed with Error $errno
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
SELECT * FROM t2 ORDER BY a;
|
||||
@ -146,13 +150,12 @@ set @b1 = concat(@b1,@b1);
|
||||
INSERT INTO t3 () VALUES(@b1,2,'Kyle, TEX'),(@b1,1,'JOE AUSTIN'),(@b1,4,'QA TESTING');
|
||||
|
||||
--echo ********************************************
|
||||
--echo *** Expect slave to fail with Error 1522 ***
|
||||
--echo *** Expect slave to fail with Error 1677 ***
|
||||
--echo ********************************************
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||
--replace_column 1 # 4 # 7 # 8 # 9 # 16 # 22 # 23 # 33 # 35 # 36 #
|
||||
--query_vertical SHOW SLAVE STATUS
|
||||
--let $errno= query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1)
|
||||
--echo Slave failed with Error $errno
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||
START SLAVE;
|
||||
|
||||
@ -191,13 +194,12 @@ INSERT INTO t4 () VALUES(100.22,2,'Kyle, TEX'),(200.26,1,'JOE AUSTIN'),
|
||||
(30000.22,4,'QA TESTING');
|
||||
|
||||
--echo ********************************************
|
||||
--echo *** Expect slave to fail with Error 1522 ***
|
||||
--echo *** Expect slave to fail with Error 1677 ***
|
||||
--echo ********************************************
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||
--replace_column 1 # 4 # 7 # 8 # 9 # 16 # 22 # 23 # 33 # 35 # 36 #
|
||||
--query_vertical SHOW SLAVE STATUS
|
||||
--let $errno= query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1)
|
||||
--echo Slave failed with Error $errno
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||
START SLAVE;
|
||||
|
||||
@ -236,13 +238,12 @@ INSERT INTO t5 () VALUES(1,'Kyle',200.23,1,'b1b1',23.00098),
|
||||
(2,'JOE',300.01,0,'b2b2',1.0000009);
|
||||
|
||||
--echo ********************************************
|
||||
--echo *** Expect slave to fail with Error 1522 ***
|
||||
--echo *** Expect slave to fail with Error 1677 ***
|
||||
--echo ********************************************
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||
--replace_column 1 # 4 # 7 # 8 # 9 # 16 # 22 # 23 # 33 # 35 # 36 #
|
||||
--query_vertical SHOW SLAVE STATUS
|
||||
--let $errno= query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1)
|
||||
--echo Slave failed with Error $errno
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||
START SLAVE;
|
||||
|
||||
@ -282,13 +283,12 @@ INSERT INTO t6 () VALUES(1,'Kyle',200.23,1),
|
||||
(2,'JOE',300.01,0);
|
||||
|
||||
--echo ********************************************
|
||||
--echo *** Expect slave to fail with Error 1522 ***
|
||||
--echo *** Expect slave to fail with Error 1677 ***
|
||||
--echo ********************************************
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||
--replace_column 1 # 4 # 7 # 8 # 9 # 16 # 22 # 23 # 33 # 35 # 36 #
|
||||
--query_vertical SHOW SLAVE STATUS
|
||||
--let $errno= query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1)
|
||||
--echo Slave failed with Error $errno
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
|
||||
#START SLAVE;
|
||||
|
||||
@ -491,13 +491,12 @@ set @b1 = concat(@b1,@b1);
|
||||
INSERT INTO t10 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
|
||||
|
||||
--echo ********************************************
|
||||
--echo *** Expect slave to fail with Error 1522 ***
|
||||
--echo *** Expect slave to fail with Error 1677 ***
|
||||
--echo ********************************************
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||
--replace_column 1 # 4 # 7 # 8 # 9 # 16 # 22 # 23 # 33 # 35 # 36 #
|
||||
--query_vertical SHOW SLAVE STATUS
|
||||
--let $errno= query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1)
|
||||
--echo Slave failed with Error $errno
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||
START SLAVE;
|
||||
|
||||
@ -515,7 +514,7 @@ sync_slave_with_master;
|
||||
--echo *** Create t11 on slave ***
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
eval CREATE TABLE t11 (a INT KEY, b BLOB, f TEXT,
|
||||
eval CREATE TABLE t11 (a INT KEY, b BLOB, f INT,
|
||||
c CHAR(5) DEFAULT 'test', e INT DEFAULT '1')ENGINE=$engine_type;
|
||||
|
||||
--echo *** Create t11 on Master ***
|
||||
@ -535,13 +534,12 @@ set @b1 = concat(@b1,@b1);
|
||||
INSERT INTO t11 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
|
||||
|
||||
--echo ********************************************
|
||||
--echo *** Expect slave to fail with Error 1522 ***
|
||||
--echo *** Expect slave to fail with Error 1677 ***
|
||||
--echo ********************************************
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||
--replace_column 1 # 4 # 7 # 8 # 9 # 16 # 22 # 23 # 33 # 35 # 36 #
|
||||
--query_vertical SHOW SLAVE STATUS
|
||||
--let $errno= query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1)
|
||||
--echo Slave failed with Error $errno
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||
START SLAVE;
|
||||
|
||||
@ -811,9 +809,8 @@ ALTER TABLE t15 ADD COLUMN c6 INT AFTER c5;
|
||||
--echo ********************************************
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||
--replace_column 1 # 4 # 7 # 8 # 9 # 16 # 22 # 23 # 33 # 35 # 36 #
|
||||
--query_vertical SHOW SLAVE STATUS
|
||||
--let $errno= query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1)
|
||||
--echo Slave failed with Error $errno
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
|
||||
START SLAVE;
|
||||
|
||||
@ -918,13 +915,12 @@ connection master;
|
||||
INSERT INTO t17 () VALUES(9223372036854775807,2,'Kyle, TEX');
|
||||
|
||||
--echo ********************************************
|
||||
--echo *** Expect slave to fail with Error 1522 ***
|
||||
--echo *** Expect slave to fail with Error 1677 ***
|
||||
--echo ********************************************
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||
--replace_column 1 # 4 # 7 # 8 # 9 # 16 # 22 # 23 # 33 # 35 # 36 #
|
||||
--query_vertical SHOW SLAVE STATUS
|
||||
--let $errno= query_get_value("SHOW SLAVE STATUS", Last_SQL_Errno, 1)
|
||||
--echo Slave failed with Error $errno
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||
START SLAVE;
|
||||
|
||||
|
@ -20,19 +20,15 @@ rename table t1 to t5, t2 to t1;
|
||||
# first don't write it to the binlog, to test the NO_WRITE_TO_BINLOG keyword.
|
||||
flush no_write_to_binlog tables;
|
||||
# Check that it's not in the binlog.
|
||||
--replace_result $SERVER_VERSION SERVER_VERSION
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
eval SHOW BINLOG EVENTS FROM $rename_event_pos ;
|
||||
let $binlog_start= $rename_event_pos;
|
||||
source include/show_binlog_events.inc;
|
||||
# Check that the master is not confused.
|
||||
select * from t3;
|
||||
# This FLUSH should go into the binlog to not confuse the slave.
|
||||
flush tables;
|
||||
# Check that it's in the binlog.
|
||||
--replace_result $SERVER_VERSION SERVER_VERSION
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
eval SHOW BINLOG EVENTS FROM $rename_event_pos ;
|
||||
let $binlog_start= $rename_event_pos;
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
sync_slave_with_master;
|
||||
# Check that the slave is not confused.
|
||||
|
@ -47,7 +47,6 @@ insert into t1 set b=1;
|
||||
insert into t2 set a=1, b=1;
|
||||
|
||||
set foreign_key_checks=0;
|
||||
set @@session.binlog_format=row;
|
||||
delete from t1;
|
||||
|
||||
--echo must sync w/o a problem (could not with the buggy code)
|
||||
|
656
mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test
Normal file
656
mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test
Normal file
@ -0,0 +1,656 @@
|
||||
################################################################################
|
||||
# In this test case, we verify if some DDL statements implicitly commit a
|
||||
# transaction and are written directly to the binary log without going
|
||||
# through either the Statement- or Transactional-Cache.
|
||||
#
|
||||
# As any statement that goes through a cache is written to the binary log
|
||||
# wrapped in a BEGIN...COMMIT, we proceed as follows:
|
||||
#
|
||||
# - create a transaction and insert some values into a transactional table.
|
||||
# - execute a DDL statement that is supposed to implicitly commit the previous
|
||||
# transaction.
|
||||
# - Check in the binary log for a COMMIT mark which is supposed to be written
|
||||
# before the DDL statement.
|
||||
# - Check in the binary log if the DDL is not wrapped by a BEGIN..COMMIT.
|
||||
#
|
||||
# For further details, please, read WL#2687 and WL#5072.
|
||||
################################################################################
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # CONFIGURATION
|
||||
--echo #########################################################################
|
||||
connection master;
|
||||
|
||||
eval CREATE TABLE tt_1 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = $engine;
|
||||
eval CREATE TABLE tt_2 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = $engine;
|
||||
eval CREATE TABLE nt_1 (ddl_case INT, PRIMARY KEY(ddl_case)) ENGINE = MyIsam;
|
||||
|
||||
INSERT INTO tt_1(ddl_case) VALUES(0);
|
||||
INSERT INTO tt_2(ddl_case) VALUES(0);
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # CHECK IMPLICT COMMIT
|
||||
--echo #########################################################################
|
||||
SET AUTOCOMMIT= 0;
|
||||
let $ddl_cases= 41;
|
||||
while (`SELECT $ddl_cases >= 1`)
|
||||
{
|
||||
--echo -b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b-
|
||||
let $in_temporary= "no";
|
||||
let $ok= "yes";
|
||||
#
|
||||
# In SBR and MIXED modes, the commit event is usually the third event in the
|
||||
# binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: INSERT
|
||||
# 3: COMMIT
|
||||
# 4: DDL EVENT which triggered the previous commmit.
|
||||
#
|
||||
if (`select @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
let $commit_event_row_number= 3;
|
||||
}
|
||||
#
|
||||
# In RBR mode, the commit event is usually the fourth event in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: ROW EVENT
|
||||
# 4: COMMIT
|
||||
# 5: DDL EVENT which triggered the previous commmit.
|
||||
#
|
||||
if (`select @@binlog_format = 'ROW'`)
|
||||
{
|
||||
let $commit_event_row_number= 4;
|
||||
}
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is usually the seventh event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: COMMAND
|
||||
# 2: BEGIN
|
||||
# 3: TABLE MAP EVENT
|
||||
# 4: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 5: ROW EVENT
|
||||
# 6: ROW EVENT
|
||||
# 7: COMMIT
|
||||
#
|
||||
if (`select '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 7;
|
||||
}
|
||||
|
||||
let $first_binlog_position= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
--enable_query_log
|
||||
eval INSERT INTO tt_1(ddl_case) VALUES ($ddl_cases);
|
||||
if (`SELECT $ddl_cases = 41`)
|
||||
{
|
||||
let $cmd= LOAD INDEX INTO CACHE nt_1 IGNORE LEAVES;
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
# This seems to be related to epochs.
|
||||
# We need to check this against an updated version or avoid it.
|
||||
let $ok= "no";
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 40`)
|
||||
{
|
||||
let $cmd= LOAD INDEX INTO CACHE tt_1, tt_2 IGNORE LEAVES;
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 39`)
|
||||
{
|
||||
let $cmd= ANALYZE TABLE nt_1;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 38`)
|
||||
{
|
||||
let $cmd= CHECK TABLE nt_1;
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 37`)
|
||||
{
|
||||
let $cmd= OPTIMIZE TABLE nt_1;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 36`)
|
||||
{
|
||||
let $cmd= REPAIR TABLE nt_1;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 35`)
|
||||
{
|
||||
let $cmd= LOCK TABLES tt_1 WRITE;
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 34`)
|
||||
{
|
||||
let $cmd= UNLOCK TABLES;
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 33`)
|
||||
{
|
||||
let $cmd= CREATE USER 'user'@'localhost';
|
||||
}
|
||||
if (`SELECT $ddl_cases = 32`)
|
||||
{
|
||||
let $cmd= GRANT ALL ON *.* TO 'user'@'localhost';
|
||||
}
|
||||
if (`SELECT $ddl_cases = 31`)
|
||||
{
|
||||
let $cmd= SET PASSWORD FOR 'user'@'localhost' = PASSWORD('newpass');
|
||||
#
|
||||
# In NDB (RBR mode), the commit event is the eleventh event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: DDL EVENT which triggered the previous commmit.
|
||||
# 2: BEGIN
|
||||
# 3: TABLE MAP EVENT
|
||||
# 4: ROW EVENT
|
||||
# 5: COMMIT
|
||||
# 6: BEGIN
|
||||
# 7: TABLE MAP EVENT
|
||||
# 8: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 9: ROW EVENT
|
||||
# 10: ROW EVENT
|
||||
# 11: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB' && @@binlog_format = 'ROW'`)
|
||||
{
|
||||
let $commit_event_row_number= 11;
|
||||
}
|
||||
#
|
||||
# In NDB (MIXED mode), the commit event is the eighth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: DDL EVENT which triggered the previous commmit.
|
||||
# 2: COMMIT
|
||||
# 3: BEGIN
|
||||
# 4: TABLE MAP EVENT
|
||||
# 5: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 6: ROW EVENT
|
||||
# 7: ROW EVENT
|
||||
# 8: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB' && @@binlog_format != 'ROW'`)
|
||||
{
|
||||
let $commit_event_row_number= 7;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 30`)
|
||||
{
|
||||
let $cmd= REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost';
|
||||
}
|
||||
if (`SELECT $ddl_cases = 29`)
|
||||
{
|
||||
let $cmd= RENAME USER 'user'@'localhost' TO 'user_new'@'localhost';
|
||||
}
|
||||
if (`SELECT $ddl_cases = 28`)
|
||||
{
|
||||
let $cmd= DROP USER 'user_new'@'localhost';
|
||||
}
|
||||
if (`SELECT $ddl_cases = 27`)
|
||||
{
|
||||
let $cmd= CREATE EVENT evt ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR DO SELECT * FROM tt_1;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 26`)
|
||||
{
|
||||
let $cmd= ALTER EVENT evt COMMENT 'evt';
|
||||
}
|
||||
if (`SELECT $ddl_cases = 25`)
|
||||
{
|
||||
let $cmd= DROP EVENT evt;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 24`)
|
||||
{
|
||||
let $cmd= CREATE TRIGGER tr AFTER INSERT ON tt_1 FOR EACH ROW UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 23`)
|
||||
{
|
||||
let $cmd= DROP TRIGGER tr;
|
||||
#
|
||||
# In RBR mode, due to the trigger the tt_2 is also updated:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT
|
||||
# 4: ROW EVENT
|
||||
# 5: COMMIT
|
||||
# 6: DDL EVENT which triggered the previous commmit.
|
||||
#
|
||||
if (`select @@binlog_format = 'ROW' && '$engine' != 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 5;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 22`)
|
||||
{
|
||||
let $cmd= CREATE FUNCTION fc () RETURNS VARCHAR(64) RETURN "fc";
|
||||
}
|
||||
if (`SELECT $ddl_cases = 21`)
|
||||
{
|
||||
let $cmd= ALTER FUNCTION fc COMMENT 'fc';
|
||||
}
|
||||
if (`SELECT $ddl_cases = 20`)
|
||||
{
|
||||
let $cmd= DROP FUNCTION fc;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 19`)
|
||||
{
|
||||
let $cmd= CREATE PROCEDURE pc () UPDATE tt_2 SET ddl_case = ddl_case WHERE ddl_case= NEW.ddl_case;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 18`)
|
||||
{
|
||||
let $cmd= ALTER PROCEDURE pc COMMENT 'pc';
|
||||
}
|
||||
if (`SELECT $ddl_cases = 17`)
|
||||
{
|
||||
let $cmd= DROP PROCEDURE pc;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 16`)
|
||||
{
|
||||
let $cmd= CREATE VIEW v AS SELECT * FROM tt_1;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 15`)
|
||||
{
|
||||
let $cmd= ALTER VIEW v AS SELECT * FROM tt_1;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 14`)
|
||||
{
|
||||
let $cmd= DROP VIEW v;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 13`)
|
||||
{
|
||||
let $cmd= CREATE INDEX ix ON tt_1(ddl_case);
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
# 7: DDL EVENT which triggered the previous commmit.
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 12`)
|
||||
{
|
||||
let $cmd= DROP INDEX ix ON tt_1;
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
# 7: DDL EVENT which triggered the previous commmit.
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 11`)
|
||||
{
|
||||
let $cmd= CREATE TEMPORARY TABLE tt_xx (a int);
|
||||
let $in_temporary= "yes";
|
||||
# In SBR and MIXED modes, the DDL statement is written to the binary log but
|
||||
# does not commit the current transaction.
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: INSERT
|
||||
# 3: CREATE TEMPORARY
|
||||
#
|
||||
# In RBR the transaction is not committed either and the statement is not
|
||||
# written to the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: ROW EVENT
|
||||
#
|
||||
if (`select @@binlog_format = 'STATEMENT' || @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
let $commit_event_row_number= 4;
|
||||
}
|
||||
#
|
||||
# In NDB (RBR mode), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB' && @@binlog_format = 'ROW'` )
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
#
|
||||
# In NDB (MIXED mode), the commit event is the nineth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: DDL EVENT which triggered the previous commmit.
|
||||
# 3: COMMIT
|
||||
# 4: BEGIN
|
||||
# 5: TABLE MAP EVENT
|
||||
# 6: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 7: ROW EVENT
|
||||
# 8: ROW EVENT
|
||||
# 9: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB' && @@binlog_format != 'ROW'` )
|
||||
{
|
||||
let $commit_event_row_number= 9;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 10`)
|
||||
{
|
||||
let $cmd= ALTER TABLE tt_xx ADD COLUMN (b int);
|
||||
#
|
||||
# In MIXED mode, the changes are logged as rows and we have what follows:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: ROW EVENT
|
||||
# 4: COMMIT
|
||||
# 5: DDL EVENT which triggered the previous commmit.
|
||||
#
|
||||
if (`select @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
let $commit_event_row_number= 4;
|
||||
}
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 9`)
|
||||
{
|
||||
let $cmd= ALTER TABLE tt_xx RENAME new_tt_xx;
|
||||
#
|
||||
# In MIXED mode, the changes are logged as rows and we have what follows:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: ROW EVENT
|
||||
# 4: COMMIT
|
||||
# 5: DDL EVENT which triggered the previous commmit.
|
||||
#
|
||||
if (`select @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
let $commit_event_row_number= 4;
|
||||
}
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 8`)
|
||||
{
|
||||
let $cmd= DROP TEMPORARY TABLE IF EXISTS new_tt_xx;
|
||||
let $in_temporary= "yes";
|
||||
#
|
||||
# In SBR and MIXED modes, the DDL statement is written to the binary log
|
||||
# but does not commit the current transaction:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: INSERT
|
||||
# 3: DROP TEMPORARY
|
||||
#
|
||||
# In RBR the transaction is not committed either and the statement is not
|
||||
# written to the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: ROW EVENT
|
||||
#
|
||||
if (`select @@binlog_format = 'STATEMENT'`)
|
||||
{
|
||||
let $commit_event_row_number= 4;
|
||||
}
|
||||
# In MIXED mode, the changes are logged as rows and we have what follows:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: ROW EVENT
|
||||
# 4: DROP TEMPORARY table IF EXISTS
|
||||
#
|
||||
if (`select @@binlog_format = 'MIXED'`)
|
||||
{
|
||||
let $commit_event_row_number= 5;
|
||||
}
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
#
|
||||
# In NDB (MIXED mode), the commit event is the nineth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: DDL EVENT which triggered the previous commmit.
|
||||
# 3: COMMIT
|
||||
# 4: BEGIN
|
||||
# 5: TABLE MAP EVENT
|
||||
# 6: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 7: ROW EVENT
|
||||
# 8: ROW EVENT
|
||||
# 9: COMMIT
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB' && @@binlog_format != 'ROW'` )
|
||||
{
|
||||
let $commit_event_row_number= 9;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 7`)
|
||||
{
|
||||
let $cmd= CREATE TABLE tt_xx (a int);
|
||||
}
|
||||
if (`SELECT $ddl_cases = 6`)
|
||||
{
|
||||
let $cmd= ALTER TABLE tt_xx ADD COLUMN (b int);
|
||||
}
|
||||
if (`SELECT $ddl_cases = 5`)
|
||||
{
|
||||
let $cmd= RENAME TABLE tt_xx TO new_tt_xx;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 4`)
|
||||
{
|
||||
let $cmd= TRUNCATE TABLE new_tt_xx;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 3`)
|
||||
{
|
||||
let $cmd= DROP TABLE IF EXISTS tt_xx, new_tt_xx;
|
||||
}
|
||||
if (`SELECT $ddl_cases = 2`)
|
||||
{
|
||||
let $cmd= CREATE DATABASE db;
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
# 7: DDL EVENT which triggered the previous commmit.
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
}
|
||||
if (`SELECT $ddl_cases = 1`)
|
||||
{
|
||||
let $cmd= DROP DATABASE IF EXISTS db;
|
||||
#
|
||||
# In NDB (RBR and MIXED modes), the commit event is the sixth event
|
||||
# in the binary log:
|
||||
#
|
||||
# 1: BEGIN
|
||||
# 2: TABLE MAP EVENT
|
||||
# 3: TABLE MAP EVENT (ndb_apply_status)
|
||||
# 4: ROW EVENT
|
||||
# 5: ROW EVENT
|
||||
# 6: COMMIT
|
||||
# 7: DDL EVENT which triggered the previous commmit.
|
||||
#
|
||||
if (`SELECT '$engine' = 'NDB'`)
|
||||
{
|
||||
let $commit_event_row_number= 6;
|
||||
}
|
||||
}
|
||||
--eval $cmd
|
||||
--disable_query_log
|
||||
#
|
||||
# When a temporary table is either created or dropped, there is no implicit
|
||||
# commit. The flag in_temporary is used to avoid aborting the test in such
|
||||
# cases. Thus we force the commit.
|
||||
#
|
||||
if (`SELECT $in_temporary = "yes"`)
|
||||
{
|
||||
--eval COMMIT
|
||||
}
|
||||
let $event_commit= query_get_value("SHOW BINLOG EVENTS FROM $first_binlog_position", Info, $commit_event_row_number);
|
||||
if (`SELECT SUBSTRING("$event_commit",1,6) != "COMMIT"`)
|
||||
{
|
||||
if (`SELECT $ok = "yes"`)
|
||||
{
|
||||
--echo it *does not* commit the current transaction.
|
||||
--echo $cmd
|
||||
--echo $event_commit
|
||||
SHOW BINLOG EVENTS;
|
||||
exit;
|
||||
}
|
||||
}
|
||||
--echo -e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e-
|
||||
let $binlog_start= $first_binlog_position;
|
||||
--echo -b-b-b-b-b-b-b-b-b-b-b- >> << -b-b-b-b-b-b-b-b-b-b-b-
|
||||
--source include/show_binlog_events.inc
|
||||
--echo -e-e-e-e-e-e-e-e-e-e-e- >> << -e-e-e-e-e-e-e-e-e-e-e-
|
||||
--echo
|
||||
dec $ddl_cases;
|
||||
}
|
||||
SET AUTOCOMMIT= 1;
|
||||
|
||||
--echo ###################################################################################
|
||||
--echo # CHECK CONSISTENCY
|
||||
--echo ###################################################################################
|
||||
--sync_slave_with_master
|
||||
|
||||
--let $diff_table_1= master:test.tt_1
|
||||
--let $diff_table_2= slave:test.tt_1
|
||||
--source include/diff_tables.inc
|
||||
|
||||
--echo ###################################################################################
|
||||
--echo # CLEAN
|
||||
--echo ###################################################################################
|
||||
connection master;
|
||||
|
||||
DROP TABLE tt_1;
|
||||
DROP TABLE tt_2;
|
||||
DROP TABLE nt_1;
|
||||
|
||||
sync_slave_with_master;
|
@ -1,9 +1,3 @@
|
||||
# File for specialities regarding replication from or to InnoDB
|
||||
# tables.
|
||||
|
||||
source include/master-slave.inc;
|
||||
source include/have_innodb.inc;
|
||||
|
||||
#
|
||||
# Bug#11401: Load data infile 'REPLACE INTO' fails on slave.
|
||||
#
|
||||
@ -76,7 +70,7 @@ sync_slave_with_master;
|
||||
connection slave;
|
||||
|
||||
# We want to verify that the following transactions are written to the
|
||||
# binlog, despite the transaction is rolled back. (The should be
|
||||
# binlog, despite the transaction is rolled back. (They should be
|
||||
# written to the binlog since they contain non-transactional DROP
|
||||
# TEMPORARY TABLE). To see that, we use the auxiliary table t1, which
|
||||
# is transactional (InnoDB) on master and MyISAM on slave. t1 should
|
||||
@ -84,6 +78,10 @@ connection slave;
|
||||
# the transaction to be logged. Since t1 is non-transactional on
|
||||
# slave, the change will not be rolled back, so the inserted rows will
|
||||
# stay in t1 and we can verify that the transaction was replicated.
|
||||
#
|
||||
# Note, however, that the previous explanation is not true for ROW and
|
||||
# MIXED modes as rollback on a transactional table is not written to
|
||||
# the binary log.
|
||||
ALTER TABLE mysqltest1.t1 ENGINE = MyISAM;
|
||||
SHOW CREATE TABLE mysqltest1.t1;
|
||||
|
@ -38,18 +38,19 @@ connection master;
|
||||
truncate table t1;
|
||||
# first scenario: duplicate on first row
|
||||
insert delayed into t1 values(10, "my name");
|
||||
if ($binlog_format_statement)
|
||||
flush table t1;
|
||||
if (`SELECT @@global.binlog_format = 'STATEMENT'`)
|
||||
{
|
||||
# statement below will be converted to non-delayed INSERT and so
|
||||
# will stop at first error, guaranteeing replication.
|
||||
--error ER_DUP_ENTRY
|
||||
insert delayed into t1 values(10, "is Bond"), (20, "James Bond");
|
||||
}
|
||||
if (!$binlog_format_statement)
|
||||
if (`SELECT @@global.binlog_format != 'STATEMENT'`)
|
||||
{
|
||||
insert delayed into t1 values(10, "is Bond"), (20, "James Bond");
|
||||
}
|
||||
flush table t1; # to wait for INSERT DELAYED to be done
|
||||
flush table t1;
|
||||
select * from t1;
|
||||
sync_slave_with_master;
|
||||
# when bug existed in statement-based binlogging, t1 on slave had
|
||||
@ -59,7 +60,7 @@ select * from t1;
|
||||
# second scenario: duplicate on second row
|
||||
connection master;
|
||||
delete from t1 where id!=10;
|
||||
if ($binlog_format_statement)
|
||||
if (`SELECT @@global.binlog_format = 'STATEMENT'`)
|
||||
{
|
||||
# statement below will be converted to non-delayed INSERT and so
|
||||
# will be binlogged with its ER_DUP_ENTRY error code, guaranteeing
|
||||
@ -67,7 +68,7 @@ if ($binlog_format_statement)
|
||||
--error ER_DUP_ENTRY
|
||||
insert delayed into t1 values(20, "is Bond"), (10, "James Bond");
|
||||
}
|
||||
if (!$binlog_format_statement)
|
||||
if (`SELECT @@global.binlog_format != 'STATEMENT'`)
|
||||
{
|
||||
insert delayed into t1 values(20, "is Bond"), (10, "James Bond");
|
||||
}
|
||||
@ -108,6 +109,7 @@ if (`SELECT @@global.binlog_format != 'ROW'`)
|
||||
{
|
||||
#must show two INSERT DELAYED
|
||||
--replace_column 1 x 2 x 3 x 4 x 5 x
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
show binlog events in 'master-bin.000002' LIMIT 2,2;
|
||||
}
|
||||
select * from t1;
|
||||
@ -118,6 +120,7 @@ if (`SELECT @@global.binlog_format != 'ROW'`)
|
||||
{
|
||||
#must show two INSERT DELAYED
|
||||
--replace_column 1 x 2 x 3 x 4 x 5 x
|
||||
--replace_regex /table_id: [0-9]+/table_id: #/
|
||||
show binlog events in 'slave-bin.000002' LIMIT 2,2;
|
||||
}
|
||||
select * from t1;
|
||||
|
@ -9,6 +9,8 @@
|
||||
# column and index but without primary key.
|
||||
##############################################################
|
||||
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
|
||||
--echo #
|
||||
--echo # Setup
|
||||
--echo #
|
||||
@ -188,7 +190,9 @@ drop trigger t1_bi;
|
||||
|
||||
# Check that nested call doesn't affect outer context.
|
||||
select last_insert_id();
|
||||
--disable_warnings
|
||||
select bug15728_insert();
|
||||
--enable_warnings
|
||||
select last_insert_id();
|
||||
insert into t1 (last_id) values (bug15728());
|
||||
# This should be exactly one greater than in the previous call.
|
||||
@ -441,7 +445,9 @@ delimiter ;|
|
||||
|
||||
INSERT INTO t1 VALUES (NULL, -1);
|
||||
CALL p1();
|
||||
--disable_warnings
|
||||
SELECT f1();
|
||||
--enable_warnings
|
||||
INSERT INTO t1 VALUES (NULL, f2()), (NULL, LAST_INSERT_ID()),
|
||||
(NULL, LAST_INSERT_ID()), (NULL, f2()), (NULL, f2());
|
||||
INSERT INTO t1 VALUES (NULL, f2());
|
||||
@ -510,7 +516,9 @@ insert into t2 (id) values(1),(2),(3);
|
||||
delete from t2;
|
||||
set sql_log_bin=1;
|
||||
#inside SELECT, then inside INSERT
|
||||
--disable_warnings
|
||||
select insid();
|
||||
--enable_warnings
|
||||
set sql_log_bin=0;
|
||||
insert into t2 (id) values(5),(6),(7);
|
||||
delete from t2 where id>=5;
|
||||
|
@ -55,7 +55,9 @@ INSERT INTO t1 VALUES (2, 2);
|
||||
INSERT INTO t1 VALUES (3, 3);
|
||||
INSERT INTO t1 VALUES (4, 4);
|
||||
|
||||
--disable_warnings
|
||||
INSERT IGNORE INTO t1 SELECT NULL, t2.b FROM t2 ORDER BY t2.a;
|
||||
--enable_warnings
|
||||
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
|
||||
|
@ -1,6 +1,3 @@
|
||||
# Requires statement logging
|
||||
-- source include/have_binlog_format_mixed_or_statement.inc
|
||||
|
||||
# See if replication of a "LOAD DATA in an autoincrement column"
|
||||
# Honours autoincrement values
|
||||
# i.e. if the master and slave have the same sequence
|
||||
@ -163,8 +160,11 @@ eval $lower_stmt_head infile '../../std_data/rpl_loaddata2.dat' into table t2 fi
|
||||
terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by
|
||||
'\n##\n' starting by '>' ignore 1 lines;
|
||||
connection slave;
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
drop table t1, t2;
|
||||
if (`SELECT @@global.binlog_format != 'ROW'`)
|
||||
{
|
||||
--source include/wait_for_slave_sql_to_stop.inc
|
||||
drop table t1, t2;
|
||||
}
|
||||
connection master;
|
||||
drop table t1, t2;
|
||||
|
||||
|
@ -43,7 +43,7 @@ show binlog events from 107 limit 1;
|
||||
show binlog events from 107 limit 2;
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
|
||||
show binlog events from 107 limit 2,1;
|
||||
show binlog events from 107 limit 1,4;
|
||||
flush logs;
|
||||
|
||||
# We need an extra update before doing save_master_pos.
|
||||
@ -104,7 +104,7 @@ show binlog events in 'slave-bin.000001' from 4;
|
||||
--replace_column 2 # 5 #
|
||||
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/
|
||||
show binlog events in 'slave-bin.000002' from 4;
|
||||
source include/show_slave_status.inc;
|
||||
source include/show_slave_status2.inc;
|
||||
|
||||
# Need to recode the following
|
||||
|
||||
|
554
mysql-test/extra/rpl_tests/rpl_mixing_engines.inc
Normal file
554
mysql-test/extra/rpl_tests/rpl_mixing_engines.inc
Normal file
@ -0,0 +1,554 @@
|
||||
################################################################################
|
||||
# This is an auxiliary file used by rpl_mixing_engines.test, and that it
|
||||
# executes SQL statements according to a format string, as specified in
|
||||
# rpl_mixing_engines.test. In addition, it accepts the special format
|
||||
# strings 'configure' and 'clean', used before and after everything else.
|
||||
################################################################################
|
||||
|
||||
if (`SELECT HEX(@commands) = HEX('configure')`)
|
||||
{
|
||||
connection master;
|
||||
|
||||
SET SQL_LOG_BIN=0;
|
||||
eval CREATE TABLE nt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE tt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval SET SQL_LOG_BIN=1;
|
||||
|
||||
connection slave;
|
||||
|
||||
SET SQL_LOG_BIN=0;
|
||||
eval CREATE TABLE nt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE nt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = MyISAM;
|
||||
eval CREATE TABLE tt_1 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_2 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_3 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_4 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_5 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
eval CREATE TABLE tt_6 (trans_id INT, stmt_id INT, info VARCHAR(64), PRIMARY KEY(trans_id, stmt_id)) ENGINE = $engine_type;
|
||||
SET SQL_LOG_BIN=1;
|
||||
|
||||
connection master;
|
||||
|
||||
INSERT INTO nt_1(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO nt_2(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO nt_3(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO nt_4(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO nt_5(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO nt_6(trans_id, stmt_id) VALUES(1,1);
|
||||
|
||||
INSERT INTO tt_1(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO tt_2(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO tt_3(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO tt_4(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO tt_5(trans_id, stmt_id) VALUES(1,1);
|
||||
INSERT INTO tt_6(trans_id, stmt_id) VALUES(1,1);
|
||||
|
||||
DELIMITER |;
|
||||
|
||||
CREATE PROCEDURE pc_i_tt_5_suc (IN p_trans_id INTEGER, IN p_stmt_id INTEGER)
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_5 WHERE trans_id= p_trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
|
||||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
CREATE PROCEDURE pc_i_nt_5_suc (IN p_trans_id INTEGER, IN p_stmt_id INTEGER)
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_5 WHERE trans_id= p_trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
|
||||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
CREATE FUNCTION fc_i_tt_5_suc (p_trans_id INTEGER, p_stmt_id INTEGER) RETURNS VARCHAR(64)
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_5 WHERE trans_id= p_trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
|
||||
INSERT INTO tt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1);
|
||||
RETURN "fc_i_tt_5_suc";
|
||||
END|
|
||||
|
||||
CREATE FUNCTION fc_i_nt_5_suc (p_trans_id INTEGER, p_stmt_id INTEGER) RETURNS VARCHAR(64)
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_5 WHERE trans_id= p_trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, p_stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id);
|
||||
INSERT INTO nt_5(trans_id, stmt_id) VALUES (p_trans_id, in_stmt_id + 1);
|
||||
RETURN "fc_i_nt_5_suc";
|
||||
END|
|
||||
|
||||
CREATE TRIGGER tr_i_tt_3_to_nt_3 AFTER INSERT ON tt_3 FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_3 WHERE trans_id= NEW.trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO nt_3(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id);
|
||||
INSERT INTO nt_3(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
CREATE TRIGGER tr_i_nt_4_to_tt_4 AFTER INSERT ON nt_4 FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_4 WHERE trans_id= NEW.trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO tt_4(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id);
|
||||
INSERT INTO tt_4(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
CREATE TRIGGER tr_i_tt_5_to_tt_6 AFTER INSERT ON tt_5 FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM tt_6 WHERE trans_id= NEW.trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id, 1), 1) INTO in_stmt_id;
|
||||
INSERT INTO tt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id);
|
||||
INSERT INTO tt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
CREATE TRIGGER tr_i_nt_5_to_nt_6 AFTER INSERT ON nt_5 FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE in_stmt_id INTEGER;
|
||||
SELECT max(stmt_id) INTO in_stmt_id FROM nt_6 WHERE trans_id= NEW.trans_id;
|
||||
SELECT COALESCE(greatest(in_stmt_id + 1, NEW.stmt_id), 1) INTO in_stmt_id;
|
||||
INSERT INTO nt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id);
|
||||
INSERT INTO nt_6(trans_id, stmt_id) VALUES (NEW.trans_id, in_stmt_id + 1);
|
||||
END|
|
||||
|
||||
DELIMITER ;|
|
||||
|
||||
let $pos_trans_command= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
|
||||
let $trans_id= 7;
|
||||
let $tb_id= 1;
|
||||
let $stmt_id= 1;
|
||||
let $commands= '';
|
||||
|
||||
SET @commands= '';
|
||||
}
|
||||
|
||||
if (`SELECT HEX(@commands) = HEX('clean')`)
|
||||
{
|
||||
connection master;
|
||||
|
||||
DROP TABLE tt_1;
|
||||
DROP TABLE tt_2;
|
||||
DROP TABLE tt_3;
|
||||
DROP TABLE tt_4;
|
||||
DROP TABLE tt_5;
|
||||
DROP TABLE tt_6;
|
||||
|
||||
DROP TABLE nt_1;
|
||||
DROP TABLE nt_2;
|
||||
DROP TABLE nt_3;
|
||||
DROP TABLE nt_4;
|
||||
DROP TABLE nt_5;
|
||||
DROP TABLE nt_6;
|
||||
|
||||
DROP PROCEDURE pc_i_tt_5_suc;
|
||||
DROP PROCEDURE pc_i_nt_5_suc;
|
||||
DROP FUNCTION fc_i_tt_5_suc;
|
||||
DROP FUNCTION fc_i_nt_5_suc;
|
||||
|
||||
sync_slave_with_master;
|
||||
|
||||
SET @commands= '';
|
||||
}
|
||||
|
||||
while (`SELECT HEX(@commands) != HEX('')`)
|
||||
{
|
||||
--disable_query_log
|
||||
SET @command= SUBSTRING_INDEX(@commands, ' ', 1);
|
||||
let $command= `SELECT @command`;
|
||||
--eval SET @check_commands= '$commands'
|
||||
if (`SELECT HEX(@check_commands) = HEX('''')`)
|
||||
{
|
||||
let $commands= `SELECT @commands`;
|
||||
}
|
||||
--echo -b-b-b-b-b-b-b-b-b-b-b- >> $command << -b-b-b-b-b-b-b-b-b-b-b-
|
||||
let $pos_command= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
--enable_query_log
|
||||
if (`SELECT HEX(@command) = HEX('B')`)
|
||||
{
|
||||
eval BEGIN;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('T')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('T-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO tt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('T-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval SELECT fc_i_tt_5_suc ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('T-proc')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval CALL pc_i_tt_5_suc ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('eT')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Te')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Te-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_5`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_5 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Te-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_tt_5_suc ($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('N')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('N-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO nt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('N-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval SELECT fc_i_nt_5_suc ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('N-proc')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval CALL pc_i_nt_5_suc ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('eN')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Ne')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Ne-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_5`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_5 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_5(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('Ne-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_nt_5_suc ($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('tN')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM tt_1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('tNe')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM tt_1 UNION SELECT $old_trans_id, $old_stmt_id, COUNT(*) FROM tt_1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('nT')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM nt_1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('nTe')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_1`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_1 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_1(trans_id, stmt_id, info) SELECT $trans_id, $stmt_id, COUNT(*) FROM nt_1 UNION SELECT $old_trans_id, $old_stmt_id, COUNT(*) FROM nt_1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('NT')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval UPDATE nt_3, tt_3 SET nt_3.info= "new text $trans_id --> $stmt_id", tt_3.info= "new text $trans_id --> $stmt_id" where nt_3.trans_id = tt_3.trans_id and tt_3.trans_id = 1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('NT-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO nt_4(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('NT-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO nt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, fc_i_tt_5_suc($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('NeT-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_4`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_4 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_4(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('NeT-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from nt_5`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from nt_5 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO nt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_tt_5_suc ($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('TN')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval UPDATE tt_4, nt_4 SET tt_4.info= "new text $trans_id --> $stmt_id", nt_4.info= "new text $trans_id --> $stmt_id" where nt_4.trans_id = tt_4.trans_id and tt_4.trans_id = 1;
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('TN-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO tt_3(trans_id, stmt_id) VALUES ($trans_id, $stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('TN-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
eval INSERT INTO tt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, fc_i_nt_5_suc($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('TeN-trig')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_3`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_3 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_3(trans_id, stmt_id) VALUES ($trans_id, $stmt_id), ($old_trans_id, $old_stmt_id);
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('TeN-func')`)
|
||||
{
|
||||
#--echo DEBUG-- (trans_id, stmt_id) --> ($trans_id, $stmt_id)
|
||||
let $old_trans_id= `SELECT max(trans_id) from tt_5`;
|
||||
let $old_stmt_id= `SELECT max(stmt_id) from tt_5 where trans_id= $old_trans_id`;
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
eval INSERT INTO tt_5(trans_id, stmt_id, info) VALUES ($trans_id, $stmt_id, ''), ($old_trans_id, $old_stmt_id, fc_i_nt_5_suc ($trans_id, $stmt_id));
|
||||
inc $stmt_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CS-T->T')`)
|
||||
{
|
||||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=$engine_type SELECT * FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CS-N->N')`)
|
||||
{
|
||||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CS-T->N')`)
|
||||
{
|
||||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=$engine_type SELECT * FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CS-N->T')`)
|
||||
{
|
||||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY(trans_id, stmt_id)) engine=MyIsam SELECT * FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CSe-T->T')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=$engine_type SELECT stmt_id FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CSe-N->N')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=MyIsam SELECT stmt_id FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CSe-T->N')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval CREATE TABLE tt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=$engine_type SELECT stmt_id FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CSe-N->T')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval CREATE TABLE nt_xx_$tb_id (PRIMARY KEY (stmt_id)) engine=MyIsam SELECT stmt_id FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('CT')`)
|
||||
{
|
||||
--eval CREATE TEMPORARY TABLE tt_xx_$tb_id (a int) engine=$engine_type;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('IS-T<-N')`)
|
||||
{
|
||||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('ISe-T<-N')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('IS-N<-T')`)
|
||||
{
|
||||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('ISe-N<-T')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('IS-T<-T')`)
|
||||
{
|
||||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('ISe-T<-T')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval INSERT INTO tt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM tt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('IS-N<-N')`)
|
||||
{
|
||||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, stmt_id, USER() FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('ISe-N<-N')`)
|
||||
{
|
||||
--error ER_DUP_ENTRY, ER_DUP_KEY
|
||||
--eval INSERT INTO nt_xx_$tb_id(trans_id, stmt_id, info) SELECT trans_id, trans_id, USER() FROM nt_1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('trunc-CS-T')`)
|
||||
{
|
||||
eval TRUNCATE TABLE tt_xx_$tb_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('trunc-CS-N')`)
|
||||
{
|
||||
eval TRUNCATE TABLE nt_xx_$tb_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('trunc-CT')`)
|
||||
{
|
||||
eval TRUNCATE TABLE tt_xx_$tb_id;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('drop-CS')`)
|
||||
{
|
||||
--disable_warnings
|
||||
eval DROP TABLE IF EXISTS tt_xx_$tb_id, nt_xx_$tb_id;
|
||||
inc $tb_id;
|
||||
--enable_warnings
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('drop-CT')`)
|
||||
{
|
||||
--disable_warnings
|
||||
eval DROP TEMPORARY TABLE IF EXISTS tt_xx_$tb_id;
|
||||
inc $tb_id;
|
||||
--enable_warnings
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('C')`)
|
||||
{
|
||||
--error 0, ER_GET_ERRMSG
|
||||
eval COMMIT;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('R')`)
|
||||
{
|
||||
--error 0, ER_GET_ERRMSG
|
||||
eval ROLLBACK;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('S1')`)
|
||||
{
|
||||
eval SAVEPOINT s1;
|
||||
}
|
||||
if (`SELECT HEX(@command) = HEX('R1')`)
|
||||
{
|
||||
eval ROLLBACK TO s1;
|
||||
}
|
||||
--disable_query_log
|
||||
SET @commands= LTRIM(SUBSTRING(@commands, LENGTH(@command) + 1));
|
||||
inc $stmt_id;
|
||||
|
||||
let $binlog_start= $pos_command;
|
||||
--source include/show_binlog_events.inc
|
||||
--echo -e-e-e-e-e-e-e-e-e-e-e- >> $command << -e-e-e-e-e-e-e-e-e-e-e-
|
||||
if (`SELECT HEX(@commands) = HEX('')`)
|
||||
{
|
||||
let $binlog_start= $pos_trans_command;
|
||||
--echo -b-b-b-b-b-b-b-b-b-b-b- >> $commands << -b-b-b-b-b-b-b-b-b-b-b-
|
||||
--source include/show_binlog_events.inc
|
||||
--echo -e-e-e-e-e-e-e-e-e-e-e- >> $commands << -e-e-e-e-e-e-e-e-e-e-e-
|
||||
--echo
|
||||
let $pos_trans_command= query_get_value("SHOW MASTER STATUS", Position, 1);
|
||||
let $stmt_id= 1;
|
||||
inc $trans_id;
|
||||
let $commands= '';
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -141,7 +141,9 @@ let $run= 5;
|
||||
while ($run)
|
||||
{
|
||||
START TRANSACTION;
|
||||
--disable_warnings
|
||||
--eval CALL tpcb.trans($rpl_format);
|
||||
--enable_warnings
|
||||
eval SET @my_errno= $mysql_errno;
|
||||
let $run_good= `SELECT @my_errno = 0`;
|
||||
let $run_bad= `SELECT @my_errno <> 0`;
|
||||
@ -190,7 +192,9 @@ let $run= 5;
|
||||
while ($run)
|
||||
{
|
||||
START TRANSACTION;
|
||||
--disable_warnings
|
||||
--eval CALL tpcb.trans($rpl_format);
|
||||
--enable_warnings
|
||||
eval SET @my_errno= $mysql_errno;
|
||||
let $run_good= `SELECT @my_errno = 0`;
|
||||
let $run_bad= `SELECT @my_errno <> 0`;
|
||||
@ -240,7 +244,9 @@ let $run= 5;
|
||||
while ($run)
|
||||
{
|
||||
START TRANSACTION;
|
||||
--disable_warnings
|
||||
--eval CALL tpcb.trans($rpl_format);
|
||||
--enable_warnings
|
||||
eval SET @my_errno= $mysql_errno;
|
||||
let $run_good= `SELECT @my_errno = 0`;
|
||||
let $run_bad= `SELECT @my_errno <> 0`;
|
||||
|
@ -6,6 +6,7 @@
|
||||
# First we test tables with only an index.
|
||||
#
|
||||
|
||||
connection master;
|
||||
eval CREATE TABLE t1 (C1 CHAR(1), C2 CHAR(1), INDEX (C1)$extra_index_t1) ENGINE = $type ;
|
||||
SELECT * FROM t1;
|
||||
sync_slave_with_master;
|
||||
@ -156,6 +157,12 @@ SELECT * FROM t5,t2,t3 WHERE t5.C2='Q' AND t2.c12='R' AND t3.C3 ='S' ORDER BY t5
|
||||
# Testing special column types
|
||||
#
|
||||
|
||||
if (`select char_length('$bit_field_special') > 0`) {
|
||||
SET @saved_slave_type_conversions = @@SLAVE_TYPE_CONVERSIONS;
|
||||
connection slave;
|
||||
eval SET GLOBAL SLAVE_TYPE_CONVERSIONS = '$bit_field_special';
|
||||
}
|
||||
|
||||
connection master;
|
||||
eval CREATE TABLE t4 (C1 CHAR(1) PRIMARY KEY, B1 BIT(1), B2 BIT(1) NOT NULL DEFAULT 0, C2 CHAR(1) NOT NULL DEFAULT 'A') ENGINE = $type ;
|
||||
|
||||
@ -164,6 +171,10 @@ SELECT C1,HEX(B1),HEX(B2) FROM t4 ORDER BY C1;
|
||||
sync_slave_with_master;
|
||||
SELECT C1,HEX(B1),HEX(B2) FROM t4 ORDER BY C1;
|
||||
|
||||
if (`select char_length('$bit_field_special') > 0`) {
|
||||
SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions;
|
||||
}
|
||||
|
||||
#
|
||||
# Testing conflicting operations
|
||||
#
|
||||
@ -350,6 +361,10 @@ eval CREATE TABLE t7 (i INT NOT NULL,
|
||||
c CHAR(255) CHARACTER SET utf8 NOT NULL,
|
||||
j INT NOT NULL) ENGINE = $type ;
|
||||
|
||||
connection slave;
|
||||
SET @saved_slave_type_conversions = @@slave_type_conversions;
|
||||
SET GLOBAL SLAVE_TYPE_CONVERSIONS = 'ALL_NON_LOSSY';
|
||||
|
||||
--echo [expecting slave to replicate correctly]
|
||||
connection master;
|
||||
INSERT INTO t1 VALUES (1, "", 1);
|
||||
@ -370,17 +385,9 @@ let $diff_table_1=master:test.t2;
|
||||
let $diff_table_2=slave:test.t2;
|
||||
source include/diff_tables.inc;
|
||||
|
||||
--echo [expecting slave to stop]
|
||||
connection master;
|
||||
INSERT INTO t3 VALUES (1, "", 1);
|
||||
INSERT INTO t3 VALUES (2, repeat(_utf8'a', 128), 2);
|
||||
|
||||
connection slave;
|
||||
source include/wait_for_slave_sql_to_stop.inc;
|
||||
let $last_error = query_get_value("SHOW SLAVE STATUS", Last_SQL_Error, 1);
|
||||
disable_query_log;
|
||||
eval SELECT "$last_error" AS Last_SQL_Error;
|
||||
enable_query_log;
|
||||
SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions;
|
||||
|
||||
connection master;
|
||||
RESET MASTER;
|
||||
connection slave;
|
||||
@ -600,7 +607,15 @@ sync_slave_with_master;
|
||||
|
||||
connection master;
|
||||
|
||||
# Since t1 contain a bit field, we have to do this trick to handle InnoDB
|
||||
if (`select char_length('$bit_field_special') > 0`) {
|
||||
SET @saved_slave_type_conversions = @@SLAVE_TYPE_CONVERSIONS;
|
||||
connection slave;
|
||||
eval SET GLOBAL SLAVE_TYPE_CONVERSIONS = '$bit_field_special';
|
||||
}
|
||||
|
||||
--disable_warnings
|
||||
connection master;
|
||||
eval CREATE TABLE t1 (a bit) ENGINE=$type;
|
||||
INSERT IGNORE INTO t1 VALUES (NULL);
|
||||
INSERT INTO t1 ( a ) VALUES ( 0 );
|
||||
@ -645,6 +660,10 @@ UPDATE t1 SET a = 9 WHERE a < 5 LIMIT 3;
|
||||
|
||||
sync_slave_with_master;
|
||||
|
||||
if (`select char_length('$bit_field_special') > 0`) {
|
||||
SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions;
|
||||
}
|
||||
|
||||
let $diff_table_1=master:test.t1;
|
||||
let $diff_table_2=slave:test.t1;
|
||||
source include/diff_tables.inc;
|
||||
|
@ -23,7 +23,7 @@ let $binary_log_limit_row= 3;
|
||||
|
||||
-- echo [MASTER] ********* SOW BINLOG EVENTS ... LIMIT offset,rows *********
|
||||
let $binary_log_file= ;
|
||||
let $binary_log_limit_row= 3;
|
||||
let $binary_log_limit_row= 4;
|
||||
let $binary_log_limit_offset= 1;
|
||||
-- source include/show_binlog_events.inc
|
||||
|
||||
@ -49,7 +49,7 @@ let $binary_log_limit_row= 3;
|
||||
|
||||
-- echo [SLAVE] ********* SOW BINLOG EVENTS ... LIMIT offset,rows *********
|
||||
let $binary_log_file= ;
|
||||
let $binary_log_limit_row= 3;
|
||||
let $binary_log_limit_row= 4;
|
||||
let $binary_log_limit_offset= 1;
|
||||
-- source include/show_binlog_events.inc
|
||||
|
||||
|
@ -1,10 +1,14 @@
|
||||
source include/master-slave.inc;
|
||||
source include/have_innodb.inc;
|
||||
|
||||
#
|
||||
# Bug#6148 ()
|
||||
#
|
||||
# Let the master do lots of insertions
|
||||
|
||||
connection master;
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
|
||||
connection slave;
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
|
||||
connection master;
|
||||
create table t1(n int);
|
||||
sync_slave_with_master;
|
@ -3,7 +3,7 @@
|
||||
-- source include/have_binlog_format_statement.inc
|
||||
-- source include/master-slave.inc
|
||||
|
||||
CALL mtr.add_suppression("Statement may not be safe to log in statement format.");
|
||||
CALL mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
|
||||
# Load some data into t1
|
||||
create table t1 (word char(20) not null);
|
||||
|
@ -1,7 +1,3 @@
|
||||
-- source include/have_debug.inc
|
||||
-- source include/master-slave.inc
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
# Proving that stopping in the middle of applying a group of events
|
||||
# does not have immediate effect if a non-transaction table has been changed.
|
||||
# The slave sql thread has to try to finish applying first.
|
||||
@ -11,6 +7,8 @@
|
||||
|
||||
connection master;
|
||||
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
|
||||
create table tm (a int auto_increment primary key) engine=myisam;
|
||||
create table ti (a int auto_increment primary key) engine=innodb;
|
||||
|
882
mysql-test/extra/rpl_tests/type_conversions.test
Normal file
882
mysql-test/extra/rpl_tests/type_conversions.test
Normal file
@ -0,0 +1,882 @@
|
||||
# File containing different lossy and non-lossy type conversions.
|
||||
|
||||
# Integral conversion testing, we do not reduce the test using
|
||||
# transitivity of conversions since the implementation is not using a
|
||||
# transitivity strategy. Instead we do an exhaustive testing.
|
||||
|
||||
disable_query_log;
|
||||
connection slave;
|
||||
--let $conv = `select @@slave_type_conversions`
|
||||
--echo **** Running tests with @@SLAVE_TYPE_CONVERSIONS = '$conv' ****
|
||||
|
||||
let $if_is_lossy = `SELECT FIND_IN_SET('ALL_LOSSY', @@SLAVE_TYPE_CONVERSIONS)`;
|
||||
let $if_is_non_lossy = `SELECT FIND_IN_SET('ALL_NON_LOSSY', @@SLAVE_TYPE_CONVERSIONS)`;
|
||||
|
||||
# TINYBLOB
|
||||
|
||||
let $source_type = TINYBLOB;
|
||||
let $target_type = TINYBLOB;
|
||||
let $source_value = 'aaa';
|
||||
let $target_value = 'aaa';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TINYBLOB;
|
||||
let $target_type= BLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TINYBLOB;
|
||||
let $target_type= MEDIUMBLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TINYBLOB;
|
||||
let $target_type= LONGBLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
# BLOB
|
||||
|
||||
let $source_type = BLOB;
|
||||
let $target_type = TINYBLOB;
|
||||
let $source_value = 'aaa';
|
||||
let $target_value = 'aaa';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BLOB;
|
||||
let $target_type= BLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BLOB;
|
||||
let $target_type= MEDIUMBLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BLOB;
|
||||
let $target_type= LONGBLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
# MEDIUMBLOB
|
||||
|
||||
let $source_type = MEDIUMBLOB;
|
||||
let $target_type = TINYBLOB;
|
||||
let $source_value = 'aaa';
|
||||
let $target_value = 'aaa';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMBLOB;
|
||||
let $target_type= BLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMBLOB;
|
||||
let $target_type= MEDIUMBLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMBLOB;
|
||||
let $target_type= LONGBLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
# LONGBLOB
|
||||
|
||||
let $source_type = LONGBLOB;
|
||||
let $target_type = TINYBLOB;
|
||||
let $source_value = 'aaa';
|
||||
let $target_value = 'aaa';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= LONGBLOB;
|
||||
let $target_type= BLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= LONGBLOB;
|
||||
let $target_type= MEDIUMBLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= LONGBLOB;
|
||||
let $target_type= LONGBLOB;
|
||||
let $source_value= 'aaa';
|
||||
let $target_value= 'aaa';
|
||||
let $can_convert= 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
# BUG#49836 (additional tests - GEOMETRY TYPE)
|
||||
|
||||
let $source_type = GEOMETRY;
|
||||
let $target_type = BLOB;
|
||||
let $source_value = PointFromText('POINT(10 10)');
|
||||
let $target_value = PointFromText('POINT(10 10)');
|
||||
let $can_convert = 0;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = BLOB;
|
||||
let $target_type = GEOMETRY;
|
||||
let $source_value = 'aaa';
|
||||
let $target_value = 'aaa';
|
||||
let $can_convert = 0;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = GEOMETRY;
|
||||
let $target_type = GEOMETRY;
|
||||
let $source_value = PointFromText('POINT(10 10)');
|
||||
let $target_value = PointFromText('POINT(10 10)');
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = BIT(1);
|
||||
let $target_type = BIT(1);
|
||||
let $source_value = b'1';
|
||||
let $target_value = b'1';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = DATE;
|
||||
let $target_type = DATE;
|
||||
let $source_value = '2009-11-21';
|
||||
let $target_value = '2009-11-21';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = ENUM('master','slave');
|
||||
let $target_type = ENUM('master','slave');
|
||||
let $source_value = 'master';
|
||||
let $target_value = 'master';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = CHAR(10);
|
||||
let $target_type = ENUM('master','slave');
|
||||
let $source_value = 'master';
|
||||
let $target_value = 'master';
|
||||
let $can_convert = 0;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = CHAR(10);
|
||||
let $target_type = SET('master','slave');
|
||||
let $source_value = 'master';
|
||||
let $target_value = 'master';
|
||||
let $can_convert = 0;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = ENUM('master','slave');
|
||||
let $target_type = CHAR(10);
|
||||
let $source_value = 'master';
|
||||
let $target_value = 'master';
|
||||
let $can_convert = 0;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = SET('master','slave');
|
||||
let $target_type = CHAR(10);
|
||||
let $source_value = 'master';
|
||||
let $target_value = 'master';
|
||||
let $can_convert = 0;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = SET('master','slave');
|
||||
let $target_type = SET('master','slave');
|
||||
let $source_value = '';
|
||||
let $target_value = '';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = SET('master','slave');
|
||||
let $target_type = SET('master','slave');
|
||||
let $source_value = 'master,slave';
|
||||
let $target_value = 'master,slave';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = SET('0','1','2','3','4','5','6');
|
||||
let $target_type = SET('0','1','2','3','4','5','6');
|
||||
let $source_value = '5';
|
||||
let $target_value = '5';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = SET('0','1','2','3','4','5','6');
|
||||
let $target_type = SET('0','1','2','3','4','5','6','7','8','9','10');
|
||||
let $source_value = '5';
|
||||
let $target_value = '5';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = SET('0','1','2','3','4','5','6','7','8','9','10');
|
||||
let $target_type = SET('0','1','2','3','4','5','6');
|
||||
let $source_value = '5';
|
||||
let $target_value = '5';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = SET('0','1','2','3','4','5','6','7','8','9','10');
|
||||
let $target_type = SET('0','1','2','3','4','5','6');
|
||||
let $source_value = '7';
|
||||
let $target_value = '';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = TINYINT;
|
||||
let $target_type = TINYINT;
|
||||
let $source_value = 1;
|
||||
let $target_value = 1;
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type = TINYINT;
|
||||
let $target_type = SMALLINT;
|
||||
let $source_value = 1;
|
||||
let $target_value = 1;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TINYINT;
|
||||
let $target_type= MEDIUMINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TINYINT;
|
||||
let $target_type= INT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TINYINT;
|
||||
let $target_type= BIGINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= SMALLINT;
|
||||
let $target_type= TINYINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= SMALLINT;
|
||||
let $target_type= TINYINT;
|
||||
let $source_value= 1 << 9;
|
||||
let $target_value= (1 << 7) - 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= SMALLINT;
|
||||
let $target_type= TINYINT UNSIGNED;
|
||||
let $source_value= 1 << 9;
|
||||
let $target_value= (1 << 8) - 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= SMALLINT;
|
||||
let $target_type= SMALLINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= SMALLINT;
|
||||
let $target_type= MEDIUMINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= SMALLINT;
|
||||
let $target_type= INT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= SMALLINT;
|
||||
let $target_type= BIGINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMINT;
|
||||
let $target_type= TINYINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMINT;
|
||||
let $target_type= TINYINT;
|
||||
let $source_value= 1 << 20;
|
||||
let $target_value= (1 << 7) - 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMINT;
|
||||
let $target_type= TINYINT UNSIGNED;
|
||||
let $source_value= 1 << 20;
|
||||
let $target_value= (1 << 8) - 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMINT;
|
||||
let $target_type= SMALLINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMINT;
|
||||
let $target_type= MEDIUMINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMINT;
|
||||
let $target_type= INT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMINT;
|
||||
let $target_type= BIGINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= INT;
|
||||
let $target_type= TINYINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= INT;
|
||||
let $target_type= TINYINT;
|
||||
let $source_value= (1 << 30);
|
||||
let $target_value= (1 << 7) - 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= INT;
|
||||
let $target_type= TINYINT UNSIGNED;
|
||||
let $source_value= (1 << 30);
|
||||
let $target_value= (1 << 8) - 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= INT;
|
||||
let $target_type= SMALLINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= INT;
|
||||
let $target_type= MEDIUMINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= INT;
|
||||
let $target_type= INT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= INT;
|
||||
let $target_type= BIGINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BIGINT;
|
||||
let $target_type= TINYINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BIGINT;
|
||||
let $target_type= SMALLINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BIGINT;
|
||||
let $target_type= MEDIUMINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BIGINT;
|
||||
let $target_type= INT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BIGINT;
|
||||
let $target_type= BIGINT;
|
||||
let $source_value= 1;
|
||||
let $target_value= 1;
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= CHAR(20);
|
||||
let $target_type= CHAR(20);
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= CHAR(20);
|
||||
let $target_type= CHAR(30);
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= CHAR(20);
|
||||
let $target_type= CHAR(10);
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnood';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= CHAR(20);
|
||||
let $target_type= VARCHAR(20);
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= CHAR(20);
|
||||
let $target_type= VARCHAR(30);
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= CHAR(20);
|
||||
let $target_type= VARCHAR(10);
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnood';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= CHAR(20);
|
||||
let $target_type= TINYTEXT;
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= CHAR(20);
|
||||
let $target_type= TEXT;
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= CHAR(20);
|
||||
let $target_type= MEDIUMTEXT;
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= CHAR(20);
|
||||
let $target_type= LONGTEXT;
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(20);
|
||||
let $target_type= VARCHAR(20);
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(20);
|
||||
let $target_type= VARCHAR(30);
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(20);
|
||||
let $target_type= VARCHAR(10);
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnood';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(20);
|
||||
let $target_type= CHAR(30);
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(20);
|
||||
let $target_type= CHAR(10);
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnood';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(20);
|
||||
let $target_type= TINYTEXT;
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(20);
|
||||
let $target_type= TEXT;
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(20);
|
||||
let $target_type= MEDIUMTEXT;
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(20);
|
||||
let $target_type= LONGTEXT;
|
||||
let $source_value= 'Smoothnoodlemaps';
|
||||
let $target_value= 'Smoothnoodlemaps';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $blob = `select repeat('abcd', 125)`;
|
||||
let $truncated_blob = `select left('$blob', 255)`;
|
||||
|
||||
let $source_type= VARCHAR(500);
|
||||
let $target_type= VARCHAR(500);
|
||||
let $source_value= '$blob';
|
||||
let $target_value= '$blob';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(500);
|
||||
let $target_type= VARCHAR(510);
|
||||
let $source_value= '$blob';
|
||||
let $target_value= '$blob';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(500);
|
||||
let $target_type= VARCHAR(255);
|
||||
let $source_value= '$blob';
|
||||
let $target_value= '$truncated_blob';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(500);
|
||||
let $target_type= TINYTEXT;
|
||||
let $source_value= '$blob';
|
||||
let $target_value= '$truncated_blob';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(500);
|
||||
let $target_type= TEXT;
|
||||
let $source_value= '$blob';
|
||||
let $target_value= '$blob';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(500);
|
||||
let $target_type= MEDIUMTEXT;
|
||||
let $source_value= '$blob';
|
||||
let $target_value= '$blob';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= VARCHAR(500);
|
||||
let $target_type= LONGTEXT;
|
||||
let $source_value= '$blob';
|
||||
let $target_value= '$blob';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $tiny_blob = `select repeat('tiny blob ', 25)`;
|
||||
let $truncated_tiny_blob = `select left('$tiny_blob', 254)`;
|
||||
|
||||
let $source_type= TINYTEXT;
|
||||
let $target_type= VARCHAR(500);
|
||||
let $source_value= '$tiny_blob';
|
||||
let $target_value= '$tiny_blob';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TEXT;
|
||||
let $target_type= VARCHAR(500);
|
||||
let $source_value= '$blob';
|
||||
let $target_value= '$blob';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMTEXT;
|
||||
let $target_type= VARCHAR(500);
|
||||
let $source_value= '$blob';
|
||||
let $target_value= '$blob';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= LONGTEXT;
|
||||
let $target_type= VARCHAR(500);
|
||||
let $source_value= '$blob';
|
||||
let $target_value= '$blob';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TINYTEXT;
|
||||
let $target_type= CHAR(255);
|
||||
let $source_value= '$tiny_blob';
|
||||
let $target_value= '$tiny_blob';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TINYTEXT;
|
||||
let $target_type= CHAR(250);
|
||||
let $source_value= '$tiny_blob';
|
||||
let $target_value= left('$tiny_blob', 250);
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TEXT;
|
||||
let $target_type= CHAR(255);
|
||||
let $source_value= '$blob';
|
||||
let $target_value= left('$blob', 255);
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= MEDIUMTEXT;
|
||||
let $target_type= CHAR(255);
|
||||
let $source_value= '$blob';
|
||||
let $target_value= left('$blob', 255);
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= LONGTEXT;
|
||||
let $target_type= CHAR(255);
|
||||
let $source_value= '$blob';
|
||||
let $target_value= left('$blob', 255);
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TINYTEXT;
|
||||
let $target_type= TINYTEXT;
|
||||
let $source_value= '$tiny_blob';
|
||||
let $target_value= '$tiny_blob';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TINYTEXT;
|
||||
let $target_type= TEXT;
|
||||
let $source_value= '$tiny_blob';
|
||||
let $target_value= '$tiny_blob';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= TEXT;
|
||||
let $target_type= TINYTEXT;
|
||||
let $source_value= '$blob';
|
||||
let $target_value= left('$blob',255);
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DECIMAL(10,5);
|
||||
let $target_type= DECIMAL(10,5);
|
||||
let $source_value= 3.14159;
|
||||
let $target_value= 3.14159;
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DECIMAL(10,5);
|
||||
let $target_type= DECIMAL(10,6);
|
||||
let $source_value= 3.14159;
|
||||
let $target_value= 3.141590;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DECIMAL(10,5);
|
||||
let $target_type= DECIMAL(11,5);
|
||||
let $source_value= 3.14159;
|
||||
let $target_value= 3.14159;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DECIMAL(10,5);
|
||||
let $target_type= DECIMAL(11,6);
|
||||
let $source_value= 3.14159;
|
||||
let $target_value= 3.141590;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DECIMAL(10,5);
|
||||
let $target_type= DECIMAL(10,4);
|
||||
let $source_value= 3.14159;
|
||||
let $target_value= 3.1416;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DECIMAL(10,5);
|
||||
let $target_type= DECIMAL(9,5);
|
||||
let $source_value= 3.14159;
|
||||
let $target_value= 3.14159;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DECIMAL(10,5);
|
||||
let $target_type= DECIMAL(9,4);
|
||||
let $source_value= 3.14159;
|
||||
let $target_value= 3.1416;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= FLOAT;
|
||||
let $target_type= DECIMAL(10,5);
|
||||
let $source_value= 3.15625;
|
||||
let $target_value= 3.15625;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DOUBLE;
|
||||
let $target_type= DECIMAL(10,5);
|
||||
let $source_value= 3.15625;
|
||||
let $target_value= 3.15625;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DECIMAL(10,5);
|
||||
let $target_type= FLOAT;
|
||||
let $source_value= 3.15625;
|
||||
let $target_value= 3.15625;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DECIMAL(10,5);
|
||||
let $target_type= DOUBLE;
|
||||
let $source_value= 3.15625;
|
||||
let $target_value= 3.15625;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= FLOAT;
|
||||
let $target_type= FLOAT;
|
||||
let $source_value= 3.15625;
|
||||
let $target_value= 3.15625;
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DOUBLE;
|
||||
let $target_type= DOUBLE;
|
||||
let $source_value= 3.15625;
|
||||
let $target_value= 3.15625;
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= FLOAT;
|
||||
let $target_type= DOUBLE;
|
||||
let $source_value= 3.15625;
|
||||
let $target_value= 3.15625;
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= DOUBLE;
|
||||
let $target_type= FLOAT;
|
||||
let $source_value= 3.15625;
|
||||
let $target_value= 3.15625;
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BIT(5);
|
||||
let $target_type= BIT(5);
|
||||
let $source_value= b'11001';
|
||||
let $target_value= b'11001';
|
||||
let $can_convert = 1;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BIT(5);
|
||||
let $target_type= BIT(6);
|
||||
let $source_value= b'11001';
|
||||
let $target_value= b'11001';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BIT(6);
|
||||
let $target_type= BIT(5);
|
||||
let $source_value= b'111001';
|
||||
let $target_value= b'11111';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BIT(5);
|
||||
let $target_type= BIT(12);
|
||||
let $source_value= b'11001';
|
||||
let $target_value= b'11001';
|
||||
let $can_convert = $if_is_non_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
let $source_type= BIT(12);
|
||||
let $target_type= BIT(5);
|
||||
let $source_value= b'101100111000';
|
||||
let $target_value= b'11111';
|
||||
let $can_convert = $if_is_lossy;
|
||||
source extra/rpl_tests/check_type.inc;
|
||||
|
||||
|
||||
disable_warnings;
|
||||
source include/reset_master_and_slave.inc;
|
||||
enable_warnings;
|
||||
enable_query_log;
|
@ -547,9 +547,9 @@ call p_verify_status_increment(0, 0, 0, 0);
|
||||
--echo # the binary log.
|
||||
--echo #
|
||||
select f1();
|
||||
call p_verify_status_increment(0, 0, 1, 0);
|
||||
call p_verify_status_increment(1, 0, 1, 0);
|
||||
commit;
|
||||
call p_verify_status_increment(0, 0, 1, 0);
|
||||
call p_verify_status_increment(1, 0, 1, 0);
|
||||
|
||||
--echo # 17. Read-only statement, a function changes non-trans-table.
|
||||
--echo #
|
||||
@ -557,15 +557,19 @@ call p_verify_status_increment(0, 0, 1, 0);
|
||||
--echo # non-transactional changes saved in the transaction cache to
|
||||
--echo # the binary log.
|
||||
--echo #
|
||||
--disable_warnings
|
||||
select f1() from t1;
|
||||
call p_verify_status_increment(1, 0, 2, 0);
|
||||
--enable_warnings
|
||||
call p_verify_status_increment(2, 0, 2, 0);
|
||||
commit;
|
||||
call p_verify_status_increment(1, 0, 2, 0);
|
||||
call p_verify_status_increment(2, 0, 2, 0);
|
||||
|
||||
--echo # 18. Read-write statement: UPDATE, change 0 (transactional) rows.
|
||||
--echo #
|
||||
select count(*) from t2;
|
||||
--disable_warnings
|
||||
update t1 set a=2 where a=f1()+10;
|
||||
--enable_warnings
|
||||
select count(*) from t2;
|
||||
call p_verify_status_increment(2, 0, 2, 0);
|
||||
commit;
|
||||
@ -579,7 +583,7 @@ call p_verify_status_increment(2, 0, 2, 0);
|
||||
drop table t2;
|
||||
set sql_mode=no_engine_substitution;
|
||||
create temporary table t2 (a int);
|
||||
call p_verify_status_increment(0, 0, 0, 0);
|
||||
call p_verify_status_increment(1, 0, 0, 0);
|
||||
set sql_mode=default;
|
||||
--echo # 19. A function changes temp-trans-table.
|
||||
--echo #
|
||||
@ -636,9 +640,9 @@ call p_verify_status_increment(2, 0, 1, 0);
|
||||
--echo # 25. DDL: DROP TEMPORARY TABLE, does not start a transaction
|
||||
--echo #
|
||||
drop temporary table t2;
|
||||
call p_verify_status_increment(0, 0, 0, 0);
|
||||
call p_verify_status_increment(1, 0, 0, 0);
|
||||
commit;
|
||||
call p_verify_status_increment(0, 0, 0, 0);
|
||||
call p_verify_status_increment(1, 0, 0, 0);
|
||||
|
||||
--echo # 26. Verify that SET AUTOCOMMIT issues an implicit commit
|
||||
--echo #
|
||||
@ -719,17 +723,17 @@ call p_verify_status_increment(4, 4, 4, 4);
|
||||
--echo # Sic: no table is created.
|
||||
create table if not exists t2 (a int) select 6 union select 7;
|
||||
--echo # Sic: first commits the statement, and then the transaction.
|
||||
call p_verify_status_increment(4, 4, 4, 4);
|
||||
call p_verify_status_increment(2, 0, 4, 4);
|
||||
create table t3 select a from t2;
|
||||
call p_verify_status_increment(4, 4, 4, 4);
|
||||
call p_verify_status_increment(2, 0, 4, 4);
|
||||
alter table t3 add column (b int);
|
||||
call p_verify_status_increment(2, 0, 2, 0);
|
||||
alter table t3 rename t4;
|
||||
call p_verify_status_increment(2, 2, 2, 2);
|
||||
call p_verify_status_increment(1, 0, 1, 0);
|
||||
rename table t4 to t3;
|
||||
call p_verify_status_increment(2, 2, 2, 2);
|
||||
call p_verify_status_increment(1, 0, 1, 0);
|
||||
truncate table t3;
|
||||
call p_verify_status_increment(4, 4, 4, 4);
|
||||
call p_verify_status_increment(2, 0, 2, 0);
|
||||
create view v1 as select * from t2;
|
||||
call p_verify_status_increment(1, 0, 1, 0);
|
||||
check table t1;
|
||||
|
@ -1,3 +1,18 @@
|
||||
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
# Use default setting for mysqld processes
|
||||
!include default_mysqld.cnf
|
||||
!include default_client.cnf
|
||||
@ -9,6 +24,8 @@
|
||||
|
||||
log-bin= master-bin
|
||||
|
||||
# Run tests with the performance schema instrumentation
|
||||
loose-enable-performance-schema
|
||||
|
||||
[mysqlbinlog]
|
||||
disable-force-if-open
|
||||
|
@ -1,3 +1,18 @@
|
||||
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
# Default values that applies to all MySQL Servers
|
||||
[mysqld]
|
||||
open-files-limit= 1024
|
||||
@ -26,3 +41,6 @@ slave-net-timeout=120
|
||||
|
||||
log-bin=mysqld-bin
|
||||
|
||||
# Run tests with the performance schema instrumentation
|
||||
loose-enable-performance-schema
|
||||
|
||||
|
@ -1,7 +1,9 @@
|
||||
#
|
||||
# Whether server supports dynamic loading.
|
||||
#
|
||||
--require r/have_dynamic_loading.require
|
||||
if (`SELECT @@have_dynamic_loading != 'YES'`) {
|
||||
--skip The test requires dynamic loading
|
||||
}
|
||||
disable_query_log;
|
||||
show variables like 'have_dynamic_loading';
|
||||
enable_query_log;
|
||||
|
@ -1,13 +1,21 @@
|
||||
#
|
||||
# Check if server has support for loading udf's
|
||||
# i.e it will support dlopen
|
||||
# Check if server has support for loading plugins
|
||||
#
|
||||
--source include/have_dynamic_loading.inc
|
||||
if (`SELECT @@have_dynamic_loading != 'YES'`) {
|
||||
--skip Example plugin requires dynamic loading
|
||||
}
|
||||
|
||||
#
|
||||
# Check if the variable EXAMPLE_PLUGIN is set
|
||||
#
|
||||
--require r/have_example_plugin.require
|
||||
disable_query_log;
|
||||
eval select LENGTH('$EXAMPLE_PLUGIN') > 0 as 'have_example_plugin';
|
||||
if (`SELECT LENGTH('$EXAMPLE_PLUGIN') = 0`) {
|
||||
--skip Example plugin requires the environment variable \$EXAMPLE_PLUGIN to be set (normally done by mtr)
|
||||
}
|
||||
|
||||
#
|
||||
# Check if --plugin-dir was setup for exampledb
|
||||
#
|
||||
if (`SELECT CONCAT('--plugin-dir=', @@plugin_dir) != '$EXAMPLE_PLUGIN_OPT'`) {
|
||||
--skip Example plugin requires that --plugin-dir is set to the example plugin dir (either the .opt file does not contain \$EXAMPLE_PLUGIN_OPT or another plugin is in use)
|
||||
}
|
||||
enable_query_log;
|
||||
|
@ -1,10 +1,9 @@
|
||||
#
|
||||
# Check if dynamic loading is supported
|
||||
# Check if server has support for loading plugins
|
||||
#
|
||||
--require r/have_dynamic_loading.require
|
||||
disable_query_log;
|
||||
show variables like 'have_dynamic_loading';
|
||||
enable_query_log;
|
||||
if (`SELECT @@have_dynamic_loading != 'YES'`) {
|
||||
--skip Requires dynamic loading
|
||||
}
|
||||
|
||||
#
|
||||
# Check if the variable SEMISYNC_MASTER_PLUGIN is set
|
||||
|
@ -1,13 +1,20 @@
|
||||
#
|
||||
# Check if server has support for loading udf's
|
||||
# i.e it will support dlopen
|
||||
# Check if server has support for loading plugins
|
||||
#
|
||||
--source include/have_dynamic_loading.inc
|
||||
if (`SELECT @@have_dynamic_loading != 'YES'`) {
|
||||
--skip simple parser requires dynamic loading
|
||||
}
|
||||
|
||||
#
|
||||
# Check if the variable SIMPLE_PARSER is set
|
||||
#
|
||||
--require r/have_simple_parser.require
|
||||
disable_query_log;
|
||||
eval select LENGTH('$SIMPLE_PARSER') > 0 as 'have_simple_parser';
|
||||
enable_query_log;
|
||||
if (`SELECT LENGTH('$SIMPLE_PARSER') = 0`) {
|
||||
--skip simple parser requires the environment variable \$SIMPLE_PARSER to be set (normally done by mtr)
|
||||
}
|
||||
|
||||
#
|
||||
# Check if --plugin-dir was setup for simple parser
|
||||
#
|
||||
if (`SELECT CONCAT('--plugin-dir=', @@plugin_dir) != '$SIMPLE_PARSER_OPT'`) {
|
||||
--skip simple parser requires that --plugin-dir is set to the udf plugin dir (either the .opt file does not contain \$UDF_EXAMPLE_LIB_OPT or another plugin is in use)
|
||||
}
|
||||
|
@ -1,13 +1,20 @@
|
||||
#
|
||||
# Check if server has support for loading udf's
|
||||
# i.e it will support dlopen
|
||||
# Check if server has support for loading plugins
|
||||
#
|
||||
--source include/have_dynamic_loading.inc
|
||||
if (`SELECT @@have_dynamic_loading != 'YES'`) {
|
||||
--skip UDF requires dynamic loading
|
||||
}
|
||||
|
||||
#
|
||||
# Check if the variable UDF_EXAMPLE_LIB is set
|
||||
#
|
||||
--require r/have_udf_example.require
|
||||
disable_query_log;
|
||||
eval select LENGTH('$UDF_EXAMPLE_LIB') > 0 as 'have_udf_example_lib';
|
||||
enable_query_log;
|
||||
if (`SELECT LENGTH('$UDF_EXAMPLE_LIB') = 0`) {
|
||||
--skip UDF requires the environment variable \$UDF_EXAMPLE_LIB to be set (normally done by mtr)
|
||||
}
|
||||
|
||||
#
|
||||
# Check if --plugin-dir was setup for udf
|
||||
#
|
||||
if (`SELECT CONCAT('--plugin-dir=', @@plugin_dir) != '$UDF_EXAMPLE_LIB_OPT'`) {
|
||||
--skip UDF requires that --plugin-dir is set to the udf plugin dir (either the .opt file does not contain \$UDF_EXAMPLE_LIB_OPT or another plugin is in use)
|
||||
}
|
||||
|
@ -55,11 +55,13 @@ connection master;
|
||||
--echo "Running on the master"
|
||||
--enable_info
|
||||
eval CREATE TABLE t1(sum INT, price FLOAT(24)) ENGINE=$engine_type;
|
||||
--disable_warnings
|
||||
INSERT INTO t1 VALUES(myfunc_int(100), myfunc_double(50.00));
|
||||
INSERT INTO t1 VALUES(myfunc_int(10), myfunc_double(5.00));
|
||||
INSERT INTO t1 VALUES(myfunc_int(200), myfunc_double(25.00));
|
||||
INSERT INTO t1 VALUES(myfunc_int(1), myfunc_double(500.00));
|
||||
SELECT * FROM t1 ORDER BY sum;
|
||||
--enable_warnings
|
||||
--disable_info
|
||||
|
||||
sync_slave_with_master;
|
||||
|
@ -1,6 +1,21 @@
|
||||
#!/usr/bin/perl
|
||||
# -*- cperl -*-
|
||||
|
||||
# Copyright (C) 2009 Sun Microsystems, Inc
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
#
|
||||
##############################################################################
|
||||
#
|
||||
@ -128,7 +143,9 @@ my $path_config_file; # The generated config file, var/my.cnf
|
||||
# executables will be used by the test suite.
|
||||
our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
|
||||
|
||||
my $DEFAULT_SUITES= "main,sys_vars,binlog,federated,rpl,rpl_ndb,ndb,innodb";
|
||||
# If you add a new suite, please check TEST_DIRS in Makefile.am.
|
||||
#
|
||||
my $DEFAULT_SUITES= "main,sys_vars,binlog,federated,rpl,rpl_ndb,ndb,innodb,perfschema";
|
||||
my $opt_suites;
|
||||
|
||||
our $opt_verbose= 0; # Verbose output, enable with --verbose
|
||||
|
@ -3,6 +3,7 @@ Database
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
performance_schema
|
||||
test
|
||||
show tables in mysql;
|
||||
Tables_in_mysql
|
||||
|
@ -1,3 +1,4 @@
|
||||
CALL mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
DROP TABLE if exists t1,t2,t3,t4,t5,t6;
|
||||
SET storage_engine=ARCHIVE;
|
||||
CREATE TABLE t1 (
|
||||
|
@ -1,3 +1,4 @@
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
set sql_mode=no_engine_substitution;
|
||||
set storage_engine = InnoDB;
|
||||
set autocommit=1;
|
||||
@ -578,11 +579,11 @@ SUCCESS
|
||||
select f1();
|
||||
f1()
|
||||
2
|
||||
call p_verify_status_increment(0, 0, 1, 0);
|
||||
call p_verify_status_increment(1, 0, 1, 0);
|
||||
SUCCESS
|
||||
|
||||
commit;
|
||||
call p_verify_status_increment(0, 0, 1, 0);
|
||||
call p_verify_status_increment(1, 0, 1, 0);
|
||||
SUCCESS
|
||||
|
||||
# 17. Read-only statement, a function changes non-trans-table.
|
||||
@ -595,11 +596,11 @@ select f1() from t1;
|
||||
f1()
|
||||
2
|
||||
2
|
||||
call p_verify_status_increment(1, 0, 2, 0);
|
||||
call p_verify_status_increment(2, 0, 2, 0);
|
||||
SUCCESS
|
||||
|
||||
commit;
|
||||
call p_verify_status_increment(1, 0, 2, 0);
|
||||
call p_verify_status_increment(2, 0, 2, 0);
|
||||
SUCCESS
|
||||
|
||||
# 18. Read-write statement: UPDATE, change 0 (transactional) rows.
|
||||
@ -627,7 +628,7 @@ SUCCESS
|
||||
drop table t2;
|
||||
set sql_mode=no_engine_substitution;
|
||||
create temporary table t2 (a int);
|
||||
call p_verify_status_increment(0, 0, 0, 0);
|
||||
call p_verify_status_increment(1, 0, 0, 0);
|
||||
SUCCESS
|
||||
|
||||
set sql_mode=default;
|
||||
@ -708,11 +709,11 @@ SUCCESS
|
||||
# 25. DDL: DROP TEMPORARY TABLE, does not start a transaction
|
||||
#
|
||||
drop temporary table t2;
|
||||
call p_verify_status_increment(0, 0, 0, 0);
|
||||
call p_verify_status_increment(1, 0, 0, 0);
|
||||
SUCCESS
|
||||
|
||||
commit;
|
||||
call p_verify_status_increment(0, 0, 0, 0);
|
||||
call p_verify_status_increment(1, 0, 0, 0);
|
||||
SUCCESS
|
||||
|
||||
# 26. Verify that SET AUTOCOMMIT issues an implicit commit
|
||||
@ -829,11 +830,11 @@ create table if not exists t2 (a int) select 6 union select 7;
|
||||
Warnings:
|
||||
Note 1050 Table 't2' already exists
|
||||
# Sic: first commits the statement, and then the transaction.
|
||||
call p_verify_status_increment(4, 4, 4, 4);
|
||||
call p_verify_status_increment(2, 0, 4, 4);
|
||||
SUCCESS
|
||||
|
||||
create table t3 select a from t2;
|
||||
call p_verify_status_increment(4, 4, 4, 4);
|
||||
call p_verify_status_increment(2, 0, 4, 4);
|
||||
SUCCESS
|
||||
|
||||
alter table t3 add column (b int);
|
||||
@ -841,15 +842,15 @@ call p_verify_status_increment(2, 0, 2, 0);
|
||||
SUCCESS
|
||||
|
||||
alter table t3 rename t4;
|
||||
call p_verify_status_increment(2, 2, 2, 2);
|
||||
call p_verify_status_increment(1, 0, 1, 0);
|
||||
SUCCESS
|
||||
|
||||
rename table t4 to t3;
|
||||
call p_verify_status_increment(2, 2, 2, 2);
|
||||
call p_verify_status_increment(1, 0, 1, 0);
|
||||
SUCCESS
|
||||
|
||||
truncate table t3;
|
||||
call p_verify_status_increment(4, 4, 4, 4);
|
||||
call p_verify_status_increment(2, 0, 2, 0);
|
||||
SUCCESS
|
||||
|
||||
create view v1 as select * from t2;
|
||||
|
@ -277,3 +277,281 @@ hex(a)
|
||||
EE00
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
#
|
||||
#
|
||||
# Testing WL#4583 Case conversion in Asian character sets
|
||||
#
|
||||
SET NAMES utf8;
|
||||
SET collation_connection=big5_chinese_ci;
|
||||
CREATE TABLE t1 (b VARCHAR(2));
|
||||
INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
|
||||
INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
|
||||
CREATE TEMPORARY TABLE head AS SELECT concat(b1.b, b2.b) AS head FROM t1 b1, t1 b2;
|
||||
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 concat(head, tail) AS code, ' ' AS a
|
||||
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;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(8) DEFAULT NULL,
|
||||
`a` varchar(1) CHARACTER SET big5 NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
28672
|
||||
UPDATE 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
|
||||
Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
|
||||
Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
|
||||
Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
|
||||
Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
|
||||
Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
|
||||
Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
|
||||
Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
|
||||
Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
|
||||
Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
|
||||
Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
|
||||
Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
|
||||
Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
|
||||
Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
|
||||
Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
|
||||
Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
|
||||
Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
|
||||
Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
|
||||
Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
|
||||
Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
|
||||
Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
|
||||
Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
|
||||
Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
|
||||
Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
|
||||
Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
|
||||
Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
|
||||
Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
|
||||
Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
|
||||
Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
|
||||
Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
|
||||
Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
|
||||
Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
|
||||
Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
|
||||
Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
|
||||
Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
|
||||
Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
|
||||
Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
|
||||
Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
|
||||
Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
|
||||
Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
|
||||
Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
|
||||
Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
|
||||
Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
|
||||
Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
|
||||
Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
|
||||
Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
|
||||
Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
|
||||
Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
|
||||
Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
|
||||
Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
|
||||
Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
|
||||
Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
|
||||
Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
|
||||
Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
|
||||
Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
|
||||
Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
|
||||
Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
|
||||
Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
|
||||
Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
|
||||
Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
|
||||
Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
|
||||
Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
|
||||
Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'';
|
||||
COUNT(*)
|
||||
13973
|
||||
SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
|
||||
code hex(upper(a)) hex(lower(a)) a upper(a) lower(a)
|
||||
A2CF A2CF A2E9 A A a
|
||||
A2D0 A2D0 A2EA B B b
|
||||
A2D1 A2D1 A2EB C C c
|
||||
A2D2 A2D2 A2EC D D d
|
||||
A2D3 A2D3 A2ED E E e
|
||||
A2D4 A2D4 A2EE F F f
|
||||
A2D5 A2D5 A2EF G G g
|
||||
A2D6 A2D6 A2F0 H H h
|
||||
A2D7 A2D7 A2F1 I I i
|
||||
A2D8 A2D8 A2F2 J J j
|
||||
A2D9 A2D9 A2F3 K K k
|
||||
A2DA A2DA A2F4 L L l
|
||||
A2DB A2DB A2F5 M M m
|
||||
A2DC A2DC A2F6 N N n
|
||||
A2DD A2DD A2F7 O O o
|
||||
A2DE A2DE A2F8 P P p
|
||||
A2DF A2DF A2F9 Q Q q
|
||||
A2E0 A2E0 A2FA R R r
|
||||
A2E1 A2E1 A2FB S S s
|
||||
A2E2 A2E2 A2FC T T t
|
||||
A2E3 A2E3 A2FD U U u
|
||||
A2E4 A2E4 A2FE V V v
|
||||
A2E5 A2E5 A340 W W w
|
||||
A2E6 A2E6 A341 X X x
|
||||
A2E7 A2E7 A342 Y Y y
|
||||
A2E8 A2E8 A343 Z Z z
|
||||
A2E9 A2CF A2E9 a A a
|
||||
A2EA A2D0 A2EA b B b
|
||||
A2EB A2D1 A2EB c C c
|
||||
A2EC A2D2 A2EC d D d
|
||||
A2ED A2D3 A2ED e E e
|
||||
A2EE A2D4 A2EE f F f
|
||||
A2EF A2D5 A2EF g G g
|
||||
A2F0 A2D6 A2F0 h H h
|
||||
A2F1 A2D7 A2F1 i I i
|
||||
A2F2 A2D8 A2F2 j J j
|
||||
A2F3 A2D9 A2F3 k K k
|
||||
A2F4 A2DA A2F4 l L l
|
||||
A2F5 A2DB A2F5 m M m
|
||||
A2F6 A2DC A2F6 n N n
|
||||
A2F7 A2DD A2F7 o O o
|
||||
A2F8 A2DE A2F8 p P p
|
||||
A2F9 A2DF A2F9 q Q q
|
||||
A2FA A2E0 A2FA r R r
|
||||
A2FB A2E1 A2FB s S s
|
||||
A2FC A2E2 A2FC t T t
|
||||
A2FD A2E3 A2FD u U u
|
||||
A2FE A2E4 A2FE v V v
|
||||
A340 A2E5 A340 w W w
|
||||
A341 A2E6 A341 x X x
|
||||
A342 A2E7 A342 y Y y
|
||||
A343 A2E8 A343 z Z z
|
||||
A344 A344 A35C Α Α α
|
||||
A345 A345 A35D Β Β β
|
||||
A346 A346 A35E Γ Γ γ
|
||||
A347 A347 A35F Δ Δ δ
|
||||
A348 A348 A360 Ε Ε ε
|
||||
A349 A349 A361 Ζ Ζ ζ
|
||||
A34A A34A A362 Η Η η
|
||||
A34B A34B A363 Θ Θ θ
|
||||
A34C A34C A364 Ι Ι ι
|
||||
A34D A34D A365 Κ Κ κ
|
||||
A34E A34E A366 Λ Λ λ
|
||||
A34F A34F A367 Μ Μ μ
|
||||
A350 A350 A368 Ν Ν ν
|
||||
A351 A351 A369 Ξ Ξ ξ
|
||||
A352 A352 A36A Ο Ο ο
|
||||
A353 A353 A36B Π Π π
|
||||
A354 A354 A36C Ρ Ρ ρ
|
||||
A355 A355 A36D Σ Σ σ
|
||||
A356 A356 A36E Τ Τ τ
|
||||
A357 A357 A36F Υ Υ υ
|
||||
A358 A358 A370 Φ Φ φ
|
||||
A359 A359 A371 Χ Χ χ
|
||||
A35A A35A A372 Ψ Ψ ψ
|
||||
A35B A35B A373 Ω Ω ω
|
||||
A35C A344 A35C α Α α
|
||||
A35D A345 A35D β Β β
|
||||
A35E A346 A35E γ Γ γ
|
||||
A35F A347 A35F δ Δ δ
|
||||
A360 A348 A360 ε Ε ε
|
||||
A361 A349 A361 ζ Ζ ζ
|
||||
A362 A34A A362 η Η η
|
||||
A363 A34B A363 θ Θ θ
|
||||
A364 A34C A364 ι Ι ι
|
||||
A365 A34D A365 κ Κ κ
|
||||
A366 A34E A366 λ Λ λ
|
||||
A367 A34F A367 μ Μ μ
|
||||
A368 A350 A368 ν Ν ν
|
||||
A369 A351 A369 ξ Ξ ξ
|
||||
A36A A352 A36A ο Ο ο
|
||||
A36B A353 A36B π Π π
|
||||
A36C A354 A36C ρ Ρ ρ
|
||||
A36D A355 A36D σ Σ σ
|
||||
A36E A356 A36E τ Τ τ
|
||||
A36F A357 A36F υ Υ υ
|
||||
A370 A358 A370 φ Φ φ
|
||||
A371 A359 A371 χ Χ χ
|
||||
A372 A35A A372 ψ Ψ ψ
|
||||
A373 A35B A373 ω Ω ω
|
||||
C7B1 C7B1 C7CC Д Д д
|
||||
C7B2 C7B2 C7CD Е Е е
|
||||
C7B3 C7B3 C7CE Ё Ё ё
|
||||
C7B4 C7B4 C7CF Ж Ж ж
|
||||
C7B5 C7B5 C7D0 З З з
|
||||
C7B6 C7B6 C7D1 И И и
|
||||
C7B7 C7B7 C7D2 Й Й й
|
||||
C7B8 C7B8 C7D3 К К к
|
||||
C7B9 C7B9 C7D4 Л Л л
|
||||
C7BA C7BA C7D5 М М м
|
||||
C7BB C7BB C7DC У У у
|
||||
C7BC C7BC C7DD Ф Ф ф
|
||||
C7BD C7BD C7DE Х Х х
|
||||
C7BE C7BE C7DF Ц Ц ц
|
||||
C7BF C7BF C7E0 Ч Ч ч
|
||||
C7C0 C7C0 C7E1 Ш Ш ш
|
||||
C7C1 C7C1 C7E2 Щ Щ щ
|
||||
C7C2 C7C2 C7E3 Ъ Ъ ъ
|
||||
C7C3 C7C3 C7E4 Ы Ы ы
|
||||
C7C4 C7C4 C7E5 Ь Ь ь
|
||||
C7C5 C7C5 C7E6 Э Э э
|
||||
C7C6 C7C6 C7E7 Ю Ю ю
|
||||
C7C7 C7C7 C7E8 Я Я я
|
||||
C7CC C7B1 C7CC д Д д
|
||||
C7CD C7B2 C7CD е Е е
|
||||
C7CE C7B3 C7CE ё Ё ё
|
||||
C7CF C7B4 C7CF ж Ж ж
|
||||
C7D0 C7B5 C7D0 з З з
|
||||
C7D1 C7B6 C7D1 и И и
|
||||
C7D2 C7B7 C7D2 й Й й
|
||||
C7D3 C7B8 C7D3 к К к
|
||||
C7D4 C7B9 C7D4 л Л л
|
||||
C7D5 C7BA C7D5 м М м
|
||||
C7DC C7BB C7DC у У у
|
||||
C7DD C7BC C7DD ф Ф ф
|
||||
C7DE C7BD C7DE х Х х
|
||||
C7DF C7BE C7DF ц Ц ц
|
||||
C7E0 C7BF C7E0 ч Ч ч
|
||||
C7E1 C7C0 C7E1 ш Ш ш
|
||||
C7E2 C7C1 C7E2 щ Щ щ
|
||||
C7E3 C7C2 C7E3 ъ Ъ ъ
|
||||
C7E4 C7C3 C7E4 ы Ы ы
|
||||
C7E5 C7C4 C7E5 ь Ь ь
|
||||
C7E6 C7C5 C7E6 э Э э
|
||||
C7E7 C7C6 C7E7 ю Ю ю
|
||||
C7E8 C7C7 C7E8 я Я я
|
||||
SELECT * FROM t1
|
||||
WHERE HEX(CAST(LOWER(a) AS CHAR CHARACTER SET utf8)) <>
|
||||
HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
|
||||
code a
|
||||
A2B9 Ⅰ
|
||||
A2BA Ⅱ
|
||||
A2BB Ⅲ
|
||||
A2BC Ⅳ
|
||||
A2BD Ⅴ
|
||||
A2BE Ⅵ
|
||||
A2BF Ⅶ
|
||||
A2C0 Ⅷ
|
||||
A2C1 Ⅸ
|
||||
A2C2 Ⅹ
|
||||
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
|
||||
C7C8 а
|
||||
C7C9 б
|
||||
C7CA в
|
||||
C7CB г
|
||||
C7D6 н
|
||||
C7D7 о
|
||||
C7D8 п
|
||||
C7D9 р
|
||||
C7DA с
|
||||
C7DB т
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -9,11 +9,14 @@ EXECUTE stmt1 USING @var1;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1(f1 blob)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES(0x8300)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
SELECT HEX(f1) FROM t1;
|
||||
HEX(f1)
|
||||
8300
|
||||
DROP table t1;
|
||||
call mtr.add_suppression('Error in Log_event::read_log_event()');
|
||||
CREATE TABLE t4 (s1 CHAR(50) CHARACTER SET latin1,
|
||||
s2 CHAR(50) CHARACTER SET cp932,
|
||||
d DECIMAL(10,2))|
|
||||
@ -29,22 +32,27 @@ HEX(s1) HEX(s2) d
|
||||
466F6F2773206120426172 ED40ED41ED42 47.93
|
||||
DROP PROCEDURE bug18293|
|
||||
DROP TABLE t4|
|
||||
SHOW BINLOG EVENTS FROM 371|
|
||||
SHOW BINLOG EVENTS FROM 514|
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 371 Query 1 537 use `test`; CREATE TABLE t4 (s1 CHAR(50) CHARACTER SET latin1,
|
||||
master-bin.000001 514 Query 1 581 BEGIN
|
||||
master-bin.000001 581 Query 1 788 use `mtr`; INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Error in Log_event::read_log_event()' COLLATE 'latin1_swedish_ci'))
|
||||
master-bin.000001 788 Query 1 856 COMMIT
|
||||
master-bin.000001 856 Query 1 1019 use `test`; CREATE TABLE t4 (s1 CHAR(50) CHARACTER SET latin1,
|
||||
s2 CHAR(50) CHARACTER SET cp932,
|
||||
d DECIMAL(10,2))
|
||||
master-bin.000001 537 Query 1 786 use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `bug18293`(IN ins1 CHAR(50),
|
||||
master-bin.000001 1019 Query 1 1265 use `test`; CREATE DEFINER=`root`@`localhost` PROCEDURE `bug18293`(IN ins1 CHAR(50),
|
||||
IN ins2 CHAR(50) CHARACTER SET cp932,
|
||||
IN ind DECIMAL(10,2))
|
||||
BEGIN
|
||||
INSERT INTO t4 VALUES (ins1, ins2, ind);
|
||||
END
|
||||
master-bin.000001 786 Query 1 1050 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172 COLLATE 'latin1_swedish_ci'), NAME_CONST('ins2',_cp932 0xED40ED41ED42 COLLATE 'cp932_japanese_ci'), NAME_CONST('ind',47.93))
|
||||
master-bin.000001 1050 Query 1 1139 use `test`; DROP PROCEDURE bug18293
|
||||
master-bin.000001 1139 Query 1 1218 use `test`; DROP TABLE t4
|
||||
master-bin.000001 1265 Query 1 1333 BEGIN
|
||||
master-bin.000001 1333 Query 1 1597 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172 COLLATE 'latin1_swedish_ci'), NAME_CONST('ins2',_cp932 0xED40ED41ED42 COLLATE 'cp932_japanese_ci'), NAME_CONST('ind',47.93))
|
||||
master-bin.000001 1597 Query 1 1666 COMMIT
|
||||
master-bin.000001 1666 Query 1 1752 use `test`; DROP PROCEDURE bug18293
|
||||
master-bin.000001 1752 Query 1 1828 use `test`; DROP TABLE t4
|
||||
End of 5.0 tests
|
||||
SHOW BINLOG EVENTS FROM 366;
|
||||
SHOW BINLOG EVENTS FROM 490;
|
||||
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error
|
||||
Bug#44352 UPPER/LOWER function doesn't work correctly on cp932 and sjis environment.
|
||||
CREATE TABLE t1 (a varchar(16)) character set cp932;
|
||||
@ -55,3 +63,331 @@ hex(a) hex(lower(a)) hex(upper(a))
|
||||
8372835E 8372835E 8372835E
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
#
|
||||
#
|
||||
# Testing WL#4583 Case conversion in Asian character sets
|
||||
#
|
||||
SET NAMES utf8;
|
||||
SET collation_connection=cp932_japanese_ci;
|
||||
CREATE TABLE t1 (b VARCHAR(2));
|
||||
INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
|
||||
INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
|
||||
CREATE TEMPORARY TABLE head AS SELECT concat(b1.b, b2.b) AS head FROM t1 b1, t1 b2;
|
||||
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 concat(head, tail) AS code, ' ' AS a
|
||||
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')
|
||||
ORDER BY head;
|
||||
DROP TEMPORARY TABLE head, tail;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(8) DEFAULT NULL,
|
||||
`a` varchar(1) CHARACTER SET cp932 NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
UPDATE 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
|
||||
Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
|
||||
Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
|
||||
Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
|
||||
Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
|
||||
Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
|
||||
Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
|
||||
Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
|
||||
Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
|
||||
Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
|
||||
Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
|
||||
Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
|
||||
Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
|
||||
Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
|
||||
Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
|
||||
Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
|
||||
Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
|
||||
Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
|
||||
Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
|
||||
Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
|
||||
Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
|
||||
Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
|
||||
Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
|
||||
Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
|
||||
Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
|
||||
Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
|
||||
Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
|
||||
Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
|
||||
Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
|
||||
Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
|
||||
Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
|
||||
Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
|
||||
Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
|
||||
Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
|
||||
Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
|
||||
Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
|
||||
Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
|
||||
Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
|
||||
Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
|
||||
Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
|
||||
Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
|
||||
Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
|
||||
Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
|
||||
Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
|
||||
Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
|
||||
Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
|
||||
Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
|
||||
Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
|
||||
Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
|
||||
Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
|
||||
Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
|
||||
Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
|
||||
Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
|
||||
Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
|
||||
Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
|
||||
Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
|
||||
Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
|
||||
Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
|
||||
Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
|
||||
Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
|
||||
Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
|
||||
Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
|
||||
Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
14623
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'' AND OCTET_LENGTH(a)=1;
|
||||
COUNT(*)
|
||||
63
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'' AND OCTET_LENGTH(a)=2;
|
||||
COUNT(*)
|
||||
11280
|
||||
SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1
|
||||
WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a))
|
||||
ORDER BY code;
|
||||
code hex(upper(a)) hex(lower(a)) a upper(a) lower(a)
|
||||
8260 8260 8281 A A a
|
||||
8261 8261 8282 B B b
|
||||
8262 8262 8283 C C c
|
||||
8263 8263 8284 D D d
|
||||
8264 8264 8285 E E e
|
||||
8265 8265 8286 F F f
|
||||
8266 8266 8287 G G g
|
||||
8267 8267 8288 H H h
|
||||
8268 8268 8289 I I i
|
||||
8269 8269 828A J J j
|
||||
826A 826A 828B K K k
|
||||
826B 826B 828C L L l
|
||||
826C 826C 828D M M m
|
||||
826D 826D 828E N N n
|
||||
826E 826E 828F O O o
|
||||
826F 826F 8290 P P p
|
||||
8270 8270 8291 Q Q q
|
||||
8271 8271 8292 R R r
|
||||
8272 8272 8293 S S s
|
||||
8273 8273 8294 T T t
|
||||
8274 8274 8295 U U u
|
||||
8275 8275 8296 V V v
|
||||
8276 8276 8297 W W w
|
||||
8277 8277 8298 X X x
|
||||
8278 8278 8299 Y Y y
|
||||
8279 8279 829A Z Z z
|
||||
8281 8260 8281 a A a
|
||||
8282 8261 8282 b B b
|
||||
8283 8262 8283 c C c
|
||||
8284 8263 8284 d D d
|
||||
8285 8264 8285 e E e
|
||||
8286 8265 8286 f F f
|
||||
8287 8266 8287 g G g
|
||||
8288 8267 8288 h H h
|
||||
8289 8268 8289 i I i
|
||||
828A 8269 828A j J j
|
||||
828B 826A 828B k K k
|
||||
828C 826B 828C l L l
|
||||
828D 826C 828D m M m
|
||||
828E 826D 828E n N n
|
||||
828F 826E 828F o O o
|
||||
8290 826F 8290 p P p
|
||||
8291 8270 8291 q Q q
|
||||
8292 8271 8292 r R r
|
||||
8293 8272 8293 s S s
|
||||
8294 8273 8294 t T t
|
||||
8295 8274 8295 u U u
|
||||
8296 8275 8296 v V v
|
||||
8297 8276 8297 w W w
|
||||
8298 8277 8298 x X x
|
||||
8299 8278 8299 y Y y
|
||||
829A 8279 829A z Z z
|
||||
839F 839F 83BF Α Α α
|
||||
83A0 83A0 83C0 Β Β β
|
||||
83A1 83A1 83C1 Γ Γ γ
|
||||
83A2 83A2 83C2 Δ Δ δ
|
||||
83A3 83A3 83C3 Ε Ε ε
|
||||
83A4 83A4 83C4 Ζ Ζ ζ
|
||||
83A5 83A5 83C5 Η Η η
|
||||
83A6 83A6 83C6 Θ Θ θ
|
||||
83A7 83A7 83C7 Ι Ι ι
|
||||
83A8 83A8 83C8 Κ Κ κ
|
||||
83A9 83A9 83C9 Λ Λ λ
|
||||
83AA 83AA 83CA Μ Μ μ
|
||||
83AB 83AB 83CB Ν Ν ν
|
||||
83AC 83AC 83CC Ξ Ξ ξ
|
||||
83AD 83AD 83CD Ο Ο ο
|
||||
83AE 83AE 83CE Π Π π
|
||||
83AF 83AF 83CF Ρ Ρ ρ
|
||||
83B0 83B0 83D0 Σ Σ σ
|
||||
83B1 83B1 83D1 Τ Τ τ
|
||||
83B2 83B2 83D2 Υ Υ υ
|
||||
83B3 83B3 83D3 Φ Φ φ
|
||||
83B4 83B4 83D4 Χ Χ χ
|
||||
83B5 83B5 83D5 Ψ Ψ ψ
|
||||
83B6 83B6 83D6 Ω Ω ω
|
||||
83BF 839F 83BF α Α α
|
||||
83C0 83A0 83C0 β Β β
|
||||
83C1 83A1 83C1 γ Γ γ
|
||||
83C2 83A2 83C2 δ Δ δ
|
||||
83C3 83A3 83C3 ε Ε ε
|
||||
83C4 83A4 83C4 ζ Ζ ζ
|
||||
83C5 83A5 83C5 η Η η
|
||||
83C6 83A6 83C6 θ Θ θ
|
||||
83C7 83A7 83C7 ι Ι ι
|
||||
83C8 83A8 83C8 κ Κ κ
|
||||
83C9 83A9 83C9 λ Λ λ
|
||||
83CA 83AA 83CA μ Μ μ
|
||||
83CB 83AB 83CB ν Ν ν
|
||||
83CC 83AC 83CC ξ Ξ ξ
|
||||
83CD 83AD 83CD ο Ο ο
|
||||
83CE 83AE 83CE π Π π
|
||||
83CF 83AF 83CF ρ Ρ ρ
|
||||
83D0 83B0 83D0 σ Σ σ
|
||||
83D1 83B1 83D1 τ Τ τ
|
||||
83D2 83B2 83D2 υ Υ υ
|
||||
83D3 83B3 83D3 φ Φ φ
|
||||
83D4 83B4 83D4 χ Χ χ
|
||||
83D5 83B5 83D5 ψ Ψ ψ
|
||||
83D6 83B6 83D6 ω Ω ω
|
||||
8440 8440 8470 А А а
|
||||
8441 8441 8471 Б Б б
|
||||
8442 8442 8472 В В в
|
||||
8443 8443 8473 Г Г г
|
||||
8444 8444 8474 Д Д д
|
||||
8445 8445 8475 Е Е е
|
||||
8446 8446 8476 Ё Ё ё
|
||||
8447 8447 8477 Ж Ж ж
|
||||
8448 8448 8478 З З з
|
||||
8449 8449 8479 И И и
|
||||
844A 844A 847A Й Й й
|
||||
844B 844B 847B К К к
|
||||
844C 844C 847C Л Л л
|
||||
844D 844D 847D М М м
|
||||
844E 844E 847E Н Н н
|
||||
844F 844F 8480 О О о
|
||||
8450 8450 8481 П П п
|
||||
8451 8451 8482 Р Р р
|
||||
8452 8452 8483 С С с
|
||||
8453 8453 8484 Т Т т
|
||||
8454 8454 8485 У У у
|
||||
8455 8455 8486 Ф Ф ф
|
||||
8456 8456 8487 Х Х х
|
||||
8457 8457 8488 Ц Ц ц
|
||||
8458 8458 8489 Ч Ч ч
|
||||
8459 8459 848A Ш Ш ш
|
||||
845A 845A 848B Щ Щ щ
|
||||
845B 845B 848C Ъ Ъ ъ
|
||||
845C 845C 848D Ы Ы ы
|
||||
845D 845D 848E Ь Ь ь
|
||||
845E 845E 848F Э Э э
|
||||
845F 845F 8490 Ю Ю ю
|
||||
8460 8460 8491 Я Я я
|
||||
8470 8440 8470 а А а
|
||||
8471 8441 8471 б Б б
|
||||
8472 8442 8472 в В в
|
||||
8473 8443 8473 г Г г
|
||||
8474 8444 8474 д Д д
|
||||
8475 8445 8475 е Е е
|
||||
8476 8446 8476 ё Ё ё
|
||||
8477 8447 8477 ж Ж ж
|
||||
8478 8448 8478 з З з
|
||||
8479 8449 8479 и И и
|
||||
847A 844A 847A й Й й
|
||||
847B 844B 847B к К к
|
||||
847C 844C 847C л Л л
|
||||
847D 844D 847D м М м
|
||||
847E 844E 847E н Н н
|
||||
8480 844F 8480 о О о
|
||||
8481 8450 8481 п П п
|
||||
8482 8451 8482 р Р р
|
||||
8483 8452 8483 с С с
|
||||
8484 8453 8484 т Т т
|
||||
8485 8454 8485 у У у
|
||||
8486 8455 8486 ф Ф ф
|
||||
8487 8456 8487 х Х х
|
||||
8488 8457 8488 ц Ц ц
|
||||
8489 8458 8489 ч Ч ч
|
||||
848A 8459 848A ш Ш ш
|
||||
848B 845A 848B щ Щ щ
|
||||
848C 845B 848C ъ Ъ ъ
|
||||
848D 845C 848D ы Ы ы
|
||||
848E 845D 848E ь Ь ь
|
||||
848F 845E 848F э Э э
|
||||
8490 845F 8490 ю Ю ю
|
||||
8491 8460 8491 я Я я
|
||||
8754 8754 EEEF Ⅰ Ⅰ ⅰ
|
||||
8755 8755 EEF0 Ⅱ Ⅱ ⅱ
|
||||
8756 8756 EEF1 Ⅲ Ⅲ ⅲ
|
||||
8757 8757 EEF2 Ⅳ Ⅳ ⅳ
|
||||
8758 8758 EEF3 Ⅴ Ⅴ ⅴ
|
||||
8759 8759 EEF4 Ⅵ Ⅵ ⅵ
|
||||
875A 875A EEF5 Ⅶ Ⅶ ⅶ
|
||||
875B 875B EEF6 Ⅷ Ⅷ ⅷ
|
||||
875C 875C EEF7 Ⅸ Ⅸ ⅸ
|
||||
875D 875D EEF8 Ⅹ Ⅹ ⅹ
|
||||
EEEF 8754 EEEF ⅰ Ⅰ ⅰ
|
||||
EEF0 8755 EEF0 ⅱ Ⅱ ⅱ
|
||||
EEF1 8756 EEF1 ⅲ Ⅲ ⅲ
|
||||
EEF2 8757 EEF2 ⅳ Ⅳ ⅳ
|
||||
EEF3 8758 EEF3 ⅴ Ⅴ ⅴ
|
||||
EEF4 8759 EEF4 ⅵ Ⅵ ⅵ
|
||||
EEF5 875A EEF5 ⅶ Ⅶ ⅶ
|
||||
EEF6 875B EEF6 ⅷ Ⅷ ⅷ
|
||||
EEF7 875C EEF7 ⅸ Ⅸ ⅸ
|
||||
EEF8 875D EEF8 ⅹ Ⅹ ⅹ
|
||||
FA40 FA4A FA40 ⅰ Ⅰ ⅰ
|
||||
FA41 FA4B FA41 ⅱ Ⅱ ⅱ
|
||||
FA42 FA4C FA42 ⅲ Ⅲ ⅲ
|
||||
FA43 FA4D FA43 ⅳ Ⅳ ⅳ
|
||||
FA44 FA4E FA44 ⅴ Ⅴ ⅴ
|
||||
FA45 FA4F FA45 ⅵ Ⅵ ⅵ
|
||||
FA46 FA50 FA46 ⅶ Ⅶ ⅶ
|
||||
FA47 FA51 FA47 ⅷ Ⅷ ⅷ
|
||||
FA48 FA52 FA48 ⅸ Ⅸ ⅸ
|
||||
FA49 FA53 FA49 ⅹ Ⅹ ⅹ
|
||||
FA4A FA4A FA40 Ⅰ Ⅰ ⅰ
|
||||
FA4B FA4B FA41 Ⅱ Ⅱ ⅱ
|
||||
FA4C FA4C FA42 Ⅲ Ⅲ ⅲ
|
||||
FA4D FA4D FA43 Ⅳ Ⅳ ⅳ
|
||||
FA4E FA4E FA44 Ⅴ Ⅴ ⅴ
|
||||
FA4F FA4F FA45 Ⅵ Ⅵ ⅵ
|
||||
FA50 FA50 FA46 Ⅶ Ⅶ ⅶ
|
||||
FA51 FA51 FA47 Ⅷ Ⅷ ⅷ
|
||||
FA52 FA52 FA48 Ⅸ Ⅸ ⅸ
|
||||
FA53 FA53 FA49 Ⅹ Ⅹ ⅹ
|
||||
SELECT * FROM t1
|
||||
WHERE HEX(CAST(LOWER(a) AS CHAR CHARACTER SET utf8)) <>
|
||||
HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
|
||||
code a
|
||||
81F0 Å
|
||||
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
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -9859,3 +9859,567 @@ hex(convert(_eucjpms 0xA5FE41 using ucs2))
|
||||
select hex(convert(_eucjpms 0x8FABF841 using ucs2));
|
||||
hex(convert(_eucjpms 0x8FABF841 using ucs2))
|
||||
003F0041
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
#
|
||||
#
|
||||
# Testing WL#4583 Case conversion in Asian character sets
|
||||
#
|
||||
SET NAMES utf8;
|
||||
SET collation_connection=eucjpms_japanese_ci;
|
||||
CREATE TABLE t1 (b VARCHAR(2));
|
||||
INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
|
||||
INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
|
||||
CREATE TEMPORARY TABLE head AS SELECT concat(b1.b, b2.b) AS head FROM t1 b1, t1 b2;
|
||||
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
|
||||
WHERE (head BETWEEN 'A1' AND 'DF') ORDER BY head;
|
||||
INSERT 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;
|
||||
INSERT 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;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(6) CHARACTER SET eucjpms NOT NULL DEFAULT '',
|
||||
`a` varchar(1) CHARACTER SET eucjpms NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
UPDATE 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
|
||||
Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
|
||||
Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
|
||||
Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
|
||||
Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
|
||||
Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
|
||||
Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
|
||||
Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
|
||||
Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
|
||||
Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
|
||||
Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
|
||||
Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
|
||||
Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
|
||||
Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
|
||||
Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
|
||||
Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
|
||||
Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
|
||||
Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
|
||||
Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
|
||||
Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
|
||||
Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
|
||||
Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
|
||||
Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
|
||||
Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
|
||||
Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
|
||||
Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
|
||||
Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
|
||||
Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
|
||||
Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
|
||||
Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
|
||||
Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
|
||||
Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
|
||||
Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
|
||||
Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
|
||||
Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
|
||||
Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
|
||||
Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
|
||||
Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
|
||||
Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
|
||||
Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
|
||||
Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
|
||||
Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
|
||||
Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
|
||||
Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
|
||||
Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
|
||||
Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
|
||||
Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
|
||||
Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
|
||||
Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
|
||||
Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
|
||||
Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
|
||||
Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
|
||||
Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
|
||||
Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
|
||||
Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
|
||||
Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
|
||||
Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
|
||||
Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
|
||||
Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
|
||||
Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
|
||||
Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
|
||||
Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
|
||||
Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
56959
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'';
|
||||
COUNT(*)
|
||||
17735
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'' AND OCTET_LENGTH(a)=2;
|
||||
COUNT(*)
|
||||
8899
|
||||
SELECT * FROM t1 WHERE CHAR_LENGTH(a)=2;
|
||||
code a
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'' AND OCTET_LENGTH(a)=3;
|
||||
COUNT(*)
|
||||
8836
|
||||
SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a)) ORDER BY code;
|
||||
code hex(upper(a)) hex(lower(a)) a upper(a) lower(a)
|
||||
8FA6E1 8FA6E1 8FA6F1 Ά Ά ά
|
||||
8FA6E2 8FA6E2 8FA6F2 Έ Έ έ
|
||||
8FA6E3 8FA6E3 8FA6F3 Ή Ή ή
|
||||
8FA6E4 8FA6E4 8FA6F4 Ί Ί ί
|
||||
8FA6E5 8FA6E5 8FA6F5 Ϊ Ϊ ϊ
|
||||
8FA6E7 8FA6E7 8FA6F7 Ό Ό ό
|
||||
8FA6E9 8FA6E9 8FA6F9 Ύ Ύ ύ
|
||||
8FA6EA 8FA6EA 8FA6FA Ϋ Ϋ ϋ
|
||||
8FA6EC 8FA6EC 8FA6FC Ώ Ώ ώ
|
||||
8FA6F1 8FA6E1 8FA6F1 ά Ά ά
|
||||
8FA6F2 8FA6E2 8FA6F2 έ Έ έ
|
||||
8FA6F3 8FA6E3 8FA6F3 ή Ή ή
|
||||
8FA6F4 8FA6E4 8FA6F4 ί Ί ί
|
||||
8FA6F5 8FA6E5 8FA6F5 ϊ Ϊ ϊ
|
||||
8FA6F7 8FA6E7 8FA6F7 ό Ό ό
|
||||
8FA6F8 A6B2 8FA6F8 ς Σ ς
|
||||
8FA6F9 8FA6E9 8FA6F9 ύ Ύ ύ
|
||||
8FA6FA 8FA6EA 8FA6FA ϋ Ϋ ϋ
|
||||
8FA6FC 8FA6EC 8FA6FC ώ Ώ ώ
|
||||
8FA7C2 8FA7C2 8FA7F2 Ђ Ђ ђ
|
||||
8FA7C3 8FA7C3 8FA7F3 Ѓ Ѓ ѓ
|
||||
8FA7C4 8FA7C4 8FA7F4 Є Є є
|
||||
8FA7C5 8FA7C5 8FA7F5 Ѕ Ѕ ѕ
|
||||
8FA7C6 8FA7C6 8FA7F6 І І і
|
||||
8FA7C7 8FA7C7 8FA7F7 Ї Ї ї
|
||||
8FA7C8 8FA7C8 8FA7F8 Ј Ј ј
|
||||
8FA7C9 8FA7C9 8FA7F9 Љ Љ љ
|
||||
8FA7CA 8FA7CA 8FA7FA Њ Њ њ
|
||||
8FA7CB 8FA7CB 8FA7FB Ћ Ћ ћ
|
||||
8FA7CC 8FA7CC 8FA7FC Ќ Ќ ќ
|
||||
8FA7CD 8FA7CD 8FA7FD Ў Ў ў
|
||||
8FA7CE 8FA7CE 8FA7FE Џ Џ џ
|
||||
8FA7F2 8FA7C2 8FA7F2 ђ Ђ ђ
|
||||
8FA7F3 8FA7C3 8FA7F3 ѓ Ѓ ѓ
|
||||
8FA7F4 8FA7C4 8FA7F4 є Є є
|
||||
8FA7F5 8FA7C5 8FA7F5 ѕ Ѕ ѕ
|
||||
8FA7F6 8FA7C6 8FA7F6 і І і
|
||||
8FA7F7 8FA7C7 8FA7F7 ї Ї ї
|
||||
8FA7F8 8FA7C8 8FA7F8 ј Ј ј
|
||||
8FA7F9 8FA7C9 8FA7F9 љ Љ љ
|
||||
8FA7FA 8FA7CA 8FA7FA њ Њ њ
|
||||
8FA7FB 8FA7CB 8FA7FB ћ Ћ ћ
|
||||
8FA7FC 8FA7CC 8FA7FC ќ Ќ ќ
|
||||
8FA7FD 8FA7CD 8FA7FD ў Ў ў
|
||||
8FA7FE 8FA7CE 8FA7FE џ Џ џ
|
||||
8FA9A1 8FA9A1 8FA9C1 Æ Æ æ
|
||||
8FA9A2 8FA9A2 8FA9C2 Đ Đ đ
|
||||
8FA9A4 8FA9A4 8FA9C4 Ħ Ħ ħ
|
||||
8FA9A6 8FA9A6 8FA9C6 IJ IJ ij
|
||||
8FA9A8 8FA9A8 8FA9C8 Ł Ł ł
|
||||
8FA9A9 8FA9A9 8FA9C9 Ŀ Ŀ ŀ
|
||||
8FA9AB 8FA9AB 8FA9CB Ŋ Ŋ ŋ
|
||||
8FA9AC 8FA9AC 8FA9CC Ø Ø ø
|
||||
8FA9AD 8FA9AD 8FA9CD Œ Œ œ
|
||||
8FA9AF 8FA9AF 8FA9CF Ŧ Ŧ ŧ
|
||||
8FA9B0 8FA9B0 8FA9D0 Þ Þ þ
|
||||
8FA9C1 8FA9A1 8FA9C1 æ Æ æ
|
||||
8FA9C2 8FA9A2 8FA9C2 đ Đ đ
|
||||
8FA9C4 8FA9A4 8FA9C4 ħ Ħ ħ
|
||||
8FA9C5 49 8FA9C5 ı I ı
|
||||
8FA9C6 8FA9A6 8FA9C6 ij IJ ij
|
||||
8FA9C8 8FA9A8 8FA9C8 ł Ł ł
|
||||
8FA9C9 8FA9A9 8FA9C9 ŀ Ŀ ŀ
|
||||
8FA9CB 8FA9AB 8FA9CB ŋ Ŋ ŋ
|
||||
8FA9CC 8FA9AC 8FA9CC ø Ø ø
|
||||
8FA9CD 8FA9AD 8FA9CD œ Œ œ
|
||||
8FA9CF 8FA9AF 8FA9CF ŧ Ŧ ŧ
|
||||
8FA9D0 8FA9B0 8FA9D0 þ Þ þ
|
||||
8FAAA1 8FAAA1 8FABA1 Á Á á
|
||||
8FAAA2 8FAAA2 8FABA2 À À à
|
||||
8FAAA3 8FAAA3 8FABA3 Ä Ä ä
|
||||
8FAAA4 8FAAA4 8FABA4 Â Â â
|
||||
8FAAA5 8FAAA5 8FABA5 Ă Ă ă
|
||||
8FAAA6 8FAAA6 8FABA6 Ǎ Ǎ ǎ
|
||||
8FAAA7 8FAAA7 8FABA7 Ā Ā ā
|
||||
8FAAA8 8FAAA8 8FABA8 Ą Ą ą
|
||||
8FAAA9 8FAAA9 8FABA9 Å Å å
|
||||
8FAAAA 8FAAAA 8FABAA Ã Ã ã
|
||||
8FAAAB 8FAAAB 8FABAB Ć Ć ć
|
||||
8FAAAC 8FAAAC 8FABAC Ĉ Ĉ ĉ
|
||||
8FAAAD 8FAAAD 8FABAD Č Č č
|
||||
8FAAAE 8FAAAE 8FABAE Ç Ç ç
|
||||
8FAAAF 8FAAAF 8FABAF Ċ Ċ ċ
|
||||
8FAAB0 8FAAB0 8FABB0 Ď Ď ď
|
||||
8FAAB1 8FAAB1 8FABB1 É É é
|
||||
8FAAB2 8FAAB2 8FABB2 È È è
|
||||
8FAAB3 8FAAB3 8FABB3 Ë Ë ë
|
||||
8FAAB4 8FAAB4 8FABB4 Ê Ê ê
|
||||
8FAAB5 8FAAB5 8FABB5 Ě Ě ě
|
||||
8FAAB6 8FAAB6 8FABB6 Ė Ė ė
|
||||
8FAAB7 8FAAB7 8FABB7 Ē Ē ē
|
||||
8FAAB8 8FAAB8 8FABB8 Ę Ę ę
|
||||
8FAABA 8FAABA 8FABBA Ĝ Ĝ ĝ
|
||||
8FAABB 8FAABB 8FABBB Ğ Ğ ğ
|
||||
8FAABD 8FAABD 8FABBD Ġ Ġ ġ
|
||||
8FAABE 8FAABE 8FABBE Ĥ Ĥ ĥ
|
||||
8FAABF 8FAABF 8FABBF Í Í í
|
||||
8FAAC0 8FAAC0 8FABC0 Ì Ì ì
|
||||
8FAAC1 8FAAC1 8FABC1 Ï Ï ï
|
||||
8FAAC2 8FAAC2 8FABC2 Î Î î
|
||||
8FAAC3 8FAAC3 8FABC3 Ǐ Ǐ ǐ
|
||||
8FAAC4 8FAAC4 69 İ İ i
|
||||
8FAAC5 8FAAC5 8FABC5 Ī Ī ī
|
||||
8FAAC6 8FAAC6 8FABC6 Į Į į
|
||||
8FAAC7 8FAAC7 8FABC7 Ĩ Ĩ ĩ
|
||||
8FAAC8 8FAAC8 8FABC8 Ĵ Ĵ ĵ
|
||||
8FAAC9 8FAAC9 8FABC9 Ķ Ķ ķ
|
||||
8FAACA 8FAACA 8FABCA Ĺ Ĺ ĺ
|
||||
8FAACB 8FAACB 8FABCB Ľ Ľ ľ
|
||||
8FAACC 8FAACC 8FABCC Ļ Ļ ļ
|
||||
8FAACD 8FAACD 8FABCD Ń Ń ń
|
||||
8FAACE 8FAACE 8FABCE Ň Ň ň
|
||||
8FAACF 8FAACF 8FABCF Ņ Ņ ņ
|
||||
8FAAD0 8FAAD0 8FABD0 Ñ Ñ ñ
|
||||
8FAAD1 8FAAD1 8FABD1 Ó Ó ó
|
||||
8FAAD2 8FAAD2 8FABD2 Ò Ò ò
|
||||
8FAAD3 8FAAD3 8FABD3 Ö Ö ö
|
||||
8FAAD4 8FAAD4 8FABD4 Ô Ô ô
|
||||
8FAAD5 8FAAD5 8FABD5 Ǒ Ǒ ǒ
|
||||
8FAAD6 8FAAD6 8FABD6 Ő Ő ő
|
||||
8FAAD7 8FAAD7 8FABD7 Ō Ō ō
|
||||
8FAAD8 8FAAD8 8FABD8 Õ Õ õ
|
||||
8FAAD9 8FAAD9 8FABD9 Ŕ Ŕ ŕ
|
||||
8FAADA 8FAADA 8FABDA Ř Ř ř
|
||||
8FAADB 8FAADB 8FABDB Ŗ Ŗ ŗ
|
||||
8FAADC 8FAADC 8FABDC Ś Ś ś
|
||||
8FAADD 8FAADD 8FABDD Ŝ Ŝ ŝ
|
||||
8FAADE 8FAADE 8FABDE Š Š š
|
||||
8FAADF 8FAADF 8FABDF Ş Ş ş
|
||||
8FAAE0 8FAAE0 8FABE0 Ť Ť ť
|
||||
8FAAE1 8FAAE1 8FABE1 Ţ Ţ ţ
|
||||
8FAAE2 8FAAE2 8FABE2 Ú Ú ú
|
||||
8FAAE3 8FAAE3 8FABE3 Ù Ù ù
|
||||
8FAAE4 8FAAE4 8FABE4 Ü Ü ü
|
||||
8FAAE5 8FAAE5 8FABE5 Û Û û
|
||||
8FAAE6 8FAAE6 8FABE6 Ŭ Ŭ ŭ
|
||||
8FAAE7 8FAAE7 8FABE7 Ǔ Ǔ ǔ
|
||||
8FAAE8 8FAAE8 8FABE8 Ű Ű ű
|
||||
8FAAE9 8FAAE9 8FABE9 Ū Ū ū
|
||||
8FAAEA 8FAAEA 8FABEA Ų Ų ų
|
||||
8FAAEB 8FAAEB 8FABEB Ů Ů ů
|
||||
8FAAEC 8FAAEC 8FABEC Ũ Ũ ũ
|
||||
8FAAED 8FAAED 8FABED Ǘ Ǘ ǘ
|
||||
8FAAEE 8FAAEE 8FABEE Ǜ Ǜ ǜ
|
||||
8FAAEF 8FAAEF 8FABEF Ǚ Ǚ ǚ
|
||||
8FAAF0 8FAAF0 8FABF0 Ǖ Ǖ ǖ
|
||||
8FAAF1 8FAAF1 8FABF1 Ŵ Ŵ ŵ
|
||||
8FAAF2 8FAAF2 8FABF2 Ý Ý ý
|
||||
8FAAF3 8FAAF3 8FABF3 Ÿ Ÿ ÿ
|
||||
8FAAF4 8FAAF4 8FABF4 Ŷ Ŷ ŷ
|
||||
8FAAF5 8FAAF5 8FABF5 Ź Ź ź
|
||||
8FAAF6 8FAAF6 8FABF6 Ž Ž ž
|
||||
8FAAF7 8FAAF7 8FABF7 Ż Ż ż
|
||||
8FABA1 8FAAA1 8FABA1 á Á á
|
||||
8FABA2 8FAAA2 8FABA2 à À à
|
||||
8FABA3 8FAAA3 8FABA3 ä Ä ä
|
||||
8FABA4 8FAAA4 8FABA4 â Â â
|
||||
8FABA5 8FAAA5 8FABA5 ă Ă ă
|
||||
8FABA6 8FAAA6 8FABA6 ǎ Ǎ ǎ
|
||||
8FABA7 8FAAA7 8FABA7 ā Ā ā
|
||||
8FABA8 8FAAA8 8FABA8 ą Ą ą
|
||||
8FABA9 8FAAA9 8FABA9 å Å å
|
||||
8FABAA 8FAAAA 8FABAA ã Ã ã
|
||||
8FABAB 8FAAAB 8FABAB ć Ć ć
|
||||
8FABAC 8FAAAC 8FABAC ĉ Ĉ ĉ
|
||||
8FABAD 8FAAAD 8FABAD č Č č
|
||||
8FABAE 8FAAAE 8FABAE ç Ç ç
|
||||
8FABAF 8FAAAF 8FABAF ċ Ċ ċ
|
||||
8FABB0 8FAAB0 8FABB0 ď Ď ď
|
||||
8FABB1 8FAAB1 8FABB1 é É é
|
||||
8FABB2 8FAAB2 8FABB2 è È è
|
||||
8FABB3 8FAAB3 8FABB3 ë Ë ë
|
||||
8FABB4 8FAAB4 8FABB4 ê Ê ê
|
||||
8FABB5 8FAAB5 8FABB5 ě Ě ě
|
||||
8FABB6 8FAAB6 8FABB6 ė Ė ė
|
||||
8FABB7 8FAAB7 8FABB7 ē Ē ē
|
||||
8FABB8 8FAAB8 8FABB8 ę Ę ę
|
||||
8FABBA 8FAABA 8FABBA ĝ Ĝ ĝ
|
||||
8FABBB 8FAABB 8FABBB ğ Ğ ğ
|
||||
8FABBD 8FAABD 8FABBD ġ Ġ ġ
|
||||
8FABBE 8FAABE 8FABBE ĥ Ĥ ĥ
|
||||
8FABBF 8FAABF 8FABBF í Í í
|
||||
8FABC0 8FAAC0 8FABC0 ì Ì ì
|
||||
8FABC1 8FAAC1 8FABC1 ï Ï ï
|
||||
8FABC2 8FAAC2 8FABC2 î Î î
|
||||
8FABC3 8FAAC3 8FABC3 ǐ Ǐ ǐ
|
||||
8FABC5 8FAAC5 8FABC5 ī Ī ī
|
||||
8FABC6 8FAAC6 8FABC6 į Į į
|
||||
8FABC7 8FAAC7 8FABC7 ĩ Ĩ ĩ
|
||||
8FABC8 8FAAC8 8FABC8 ĵ Ĵ ĵ
|
||||
8FABC9 8FAAC9 8FABC9 ķ Ķ ķ
|
||||
8FABCA 8FAACA 8FABCA ĺ Ĺ ĺ
|
||||
8FABCB 8FAACB 8FABCB ľ Ľ ľ
|
||||
8FABCC 8FAACC 8FABCC ļ Ļ ļ
|
||||
8FABCD 8FAACD 8FABCD ń Ń ń
|
||||
8FABCE 8FAACE 8FABCE ň Ň ň
|
||||
8FABCF 8FAACF 8FABCF ņ Ņ ņ
|
||||
8FABD0 8FAAD0 8FABD0 ñ Ñ ñ
|
||||
8FABD1 8FAAD1 8FABD1 ó Ó ó
|
||||
8FABD2 8FAAD2 8FABD2 ò Ò ò
|
||||
8FABD3 8FAAD3 8FABD3 ö Ö ö
|
||||
8FABD4 8FAAD4 8FABD4 ô Ô ô
|
||||
8FABD5 8FAAD5 8FABD5 ǒ Ǒ ǒ
|
||||
8FABD6 8FAAD6 8FABD6 ő Ő ő
|
||||
8FABD7 8FAAD7 8FABD7 ō Ō ō
|
||||
8FABD8 8FAAD8 8FABD8 õ Õ õ
|
||||
8FABD9 8FAAD9 8FABD9 ŕ Ŕ ŕ
|
||||
8FABDA 8FAADA 8FABDA ř Ř ř
|
||||
8FABDB 8FAADB 8FABDB ŗ Ŗ ŗ
|
||||
8FABDC 8FAADC 8FABDC ś Ś ś
|
||||
8FABDD 8FAADD 8FABDD ŝ Ŝ ŝ
|
||||
8FABDE 8FAADE 8FABDE š Š š
|
||||
8FABDF 8FAADF 8FABDF ş Ş ş
|
||||
8FABE0 8FAAE0 8FABE0 ť Ť ť
|
||||
8FABE1 8FAAE1 8FABE1 ţ Ţ ţ
|
||||
8FABE2 8FAAE2 8FABE2 ú Ú ú
|
||||
8FABE3 8FAAE3 8FABE3 ù Ù ù
|
||||
8FABE4 8FAAE4 8FABE4 ü Ü ü
|
||||
8FABE5 8FAAE5 8FABE5 û Û û
|
||||
8FABE6 8FAAE6 8FABE6 ŭ Ŭ ŭ
|
||||
8FABE7 8FAAE7 8FABE7 ǔ Ǔ ǔ
|
||||
8FABE8 8FAAE8 8FABE8 ű Ű ű
|
||||
8FABE9 8FAAE9 8FABE9 ū Ū ū
|
||||
8FABEA 8FAAEA 8FABEA ų Ų ų
|
||||
8FABEB 8FAAEB 8FABEB ů Ů ů
|
||||
8FABEC 8FAAEC 8FABEC ũ Ũ ũ
|
||||
8FABED 8FAAED 8FABED ǘ Ǘ ǘ
|
||||
8FABEE 8FAAEE 8FABEE ǜ Ǜ ǜ
|
||||
8FABEF 8FAAEF 8FABEF ǚ Ǚ ǚ
|
||||
8FABF0 8FAAF0 8FABF0 ǖ Ǖ ǖ
|
||||
8FABF1 8FAAF1 8FABF1 ŵ Ŵ ŵ
|
||||
8FABF2 8FAAF2 8FABF2 ý Ý ý
|
||||
8FABF3 8FAAF3 8FABF3 ÿ Ÿ ÿ
|
||||
8FABF4 8FAAF4 8FABF4 ŷ Ŷ ŷ
|
||||
8FABF5 8FAAF5 8FABF5 ź Ź ź
|
||||
8FABF6 8FAAF6 8FABF6 ž Ž ž
|
||||
8FABF7 8FAAF7 8FABF7 ż Ż ż
|
||||
8FF3F3 8FF3FD 8FF3F3 ⅰ Ⅰ ⅰ
|
||||
8FF3F4 8FF3FE 8FF3F4 ⅱ Ⅱ ⅱ
|
||||
8FF3F5 8FF4A1 8FF3F5 ⅲ Ⅲ ⅲ
|
||||
8FF3F6 8FF4A2 8FF3F6 ⅳ Ⅳ ⅳ
|
||||
8FF3F7 8FF4A3 8FF3F7 ⅴ Ⅴ ⅴ
|
||||
8FF3F8 8FF4A4 8FF3F8 ⅵ Ⅵ ⅵ
|
||||
8FF3F9 8FF4A5 8FF3F9 ⅶ Ⅶ ⅶ
|
||||
8FF3FA 8FF4A6 8FF3FA ⅷ Ⅷ ⅷ
|
||||
8FF3FB 8FF4A7 8FF3FB ⅸ Ⅸ ⅸ
|
||||
8FF3FC 8FF4A8 8FF3FC ⅹ Ⅹ ⅹ
|
||||
8FF3FD 8FF3FD 8FF3F3 Ⅰ Ⅰ ⅰ
|
||||
8FF3FE 8FF3FE 8FF3F4 Ⅱ Ⅱ ⅱ
|
||||
8FF4A1 8FF4A1 8FF3F5 Ⅲ Ⅲ ⅲ
|
||||
8FF4A2 8FF4A2 8FF3F6 Ⅳ Ⅳ ⅳ
|
||||
8FF4A3 8FF4A3 8FF3F7 Ⅴ Ⅴ ⅴ
|
||||
8FF4A4 8FF4A4 8FF3F8 Ⅵ Ⅵ ⅵ
|
||||
8FF4A5 8FF4A5 8FF3F9 Ⅶ Ⅶ ⅶ
|
||||
8FF4A6 8FF4A6 8FF3FA Ⅷ Ⅷ ⅷ
|
||||
8FF4A7 8FF4A7 8FF3FB Ⅸ Ⅸ ⅸ
|
||||
8FF4A8 8FF4A8 8FF3FC Ⅹ Ⅹ ⅹ
|
||||
A2F2 A2F2 8FABA9 Å Å å
|
||||
A3C1 A3C1 A3E1 A A a
|
||||
A3C2 A3C2 A3E2 B B b
|
||||
A3C3 A3C3 A3E3 C C c
|
||||
A3C4 A3C4 A3E4 D D d
|
||||
A3C5 A3C5 A3E5 E E e
|
||||
A3C6 A3C6 A3E6 F F f
|
||||
A3C7 A3C7 A3E7 G G g
|
||||
A3C8 A3C8 A3E8 H H h
|
||||
A3C9 A3C9 A3E9 I I i
|
||||
A3CA A3CA A3EA J J j
|
||||
A3CB A3CB A3EB K K k
|
||||
A3CC A3CC A3EC L L l
|
||||
A3CD A3CD A3ED M M m
|
||||
A3CE A3CE A3EE N N n
|
||||
A3CF A3CF A3EF O O o
|
||||
A3D0 A3D0 A3F0 P P p
|
||||
A3D1 A3D1 A3F1 Q Q q
|
||||
A3D2 A3D2 A3F2 R R r
|
||||
A3D3 A3D3 A3F3 S S s
|
||||
A3D4 A3D4 A3F4 T T t
|
||||
A3D5 A3D5 A3F5 U U u
|
||||
A3D6 A3D6 A3F6 V V v
|
||||
A3D7 A3D7 A3F7 W W w
|
||||
A3D8 A3D8 A3F8 X X x
|
||||
A3D9 A3D9 A3F9 Y Y y
|
||||
A3DA A3DA A3FA Z Z z
|
||||
A3E1 A3C1 A3E1 a A a
|
||||
A3E2 A3C2 A3E2 b B b
|
||||
A3E3 A3C3 A3E3 c C c
|
||||
A3E4 A3C4 A3E4 d D d
|
||||
A3E5 A3C5 A3E5 e E e
|
||||
A3E6 A3C6 A3E6 f F f
|
||||
A3E7 A3C7 A3E7 g G g
|
||||
A3E8 A3C8 A3E8 h H h
|
||||
A3E9 A3C9 A3E9 i I i
|
||||
A3EA A3CA A3EA j J j
|
||||
A3EB A3CB A3EB k K k
|
||||
A3EC A3CC A3EC l L l
|
||||
A3ED A3CD A3ED m M m
|
||||
A3EE A3CE A3EE n N n
|
||||
A3EF A3CF A3EF o O o
|
||||
A3F0 A3D0 A3F0 p P p
|
||||
A3F1 A3D1 A3F1 q Q q
|
||||
A3F2 A3D2 A3F2 r R r
|
||||
A3F3 A3D3 A3F3 s S s
|
||||
A3F4 A3D4 A3F4 t T t
|
||||
A3F5 A3D5 A3F5 u U u
|
||||
A3F6 A3D6 A3F6 v V v
|
||||
A3F7 A3D7 A3F7 w W w
|
||||
A3F8 A3D8 A3F8 x X x
|
||||
A3F9 A3D9 A3F9 y Y y
|
||||
A3FA A3DA A3FA z Z z
|
||||
A6A1 A6A1 A6C1 Α Α α
|
||||
A6A2 A6A2 A6C2 Β Β β
|
||||
A6A3 A6A3 A6C3 Γ Γ γ
|
||||
A6A4 A6A4 A6C4 Δ Δ δ
|
||||
A6A5 A6A5 A6C5 Ε Ε ε
|
||||
A6A6 A6A6 A6C6 Ζ Ζ ζ
|
||||
A6A7 A6A7 A6C7 Η Η η
|
||||
A6A8 A6A8 A6C8 Θ Θ θ
|
||||
A6A9 A6A9 A6C9 Ι Ι ι
|
||||
A6AA A6AA A6CA Κ Κ κ
|
||||
A6AB A6AB A6CB Λ Λ λ
|
||||
A6AC A6AC A6CC Μ Μ μ
|
||||
A6AD A6AD A6CD Ν Ν ν
|
||||
A6AE A6AE A6CE Ξ Ξ ξ
|
||||
A6AF A6AF A6CF Ο Ο ο
|
||||
A6B0 A6B0 A6D0 Π Π π
|
||||
A6B1 A6B1 A6D1 Ρ Ρ ρ
|
||||
A6B2 A6B2 A6D2 Σ Σ σ
|
||||
A6B3 A6B3 A6D3 Τ Τ τ
|
||||
A6B4 A6B4 A6D4 Υ Υ υ
|
||||
A6B5 A6B5 A6D5 Φ Φ φ
|
||||
A6B6 A6B6 A6D6 Χ Χ χ
|
||||
A6B7 A6B7 A6D7 Ψ Ψ ψ
|
||||
A6B8 A6B8 A6D8 Ω Ω ω
|
||||
A6C1 A6A1 A6C1 α Α α
|
||||
A6C2 A6A2 A6C2 β Β β
|
||||
A6C3 A6A3 A6C3 γ Γ γ
|
||||
A6C4 A6A4 A6C4 δ Δ δ
|
||||
A6C5 A6A5 A6C5 ε Ε ε
|
||||
A6C6 A6A6 A6C6 ζ Ζ ζ
|
||||
A6C7 A6A7 A6C7 η Η η
|
||||
A6C8 A6A8 A6C8 θ Θ θ
|
||||
A6C9 A6A9 A6C9 ι Ι ι
|
||||
A6CA A6AA A6CA κ Κ κ
|
||||
A6CB A6AB A6CB λ Λ λ
|
||||
A6CC A6AC A6CC μ Μ μ
|
||||
A6CD A6AD A6CD ν Ν ν
|
||||
A6CE A6AE A6CE ξ Ξ ξ
|
||||
A6CF A6AF A6CF ο Ο ο
|
||||
A6D0 A6B0 A6D0 π Π π
|
||||
A6D1 A6B1 A6D1 ρ Ρ ρ
|
||||
A6D2 A6B2 A6D2 σ Σ σ
|
||||
A6D3 A6B3 A6D3 τ Τ τ
|
||||
A6D4 A6B4 A6D4 υ Υ υ
|
||||
A6D5 A6B5 A6D5 φ Φ φ
|
||||
A6D6 A6B6 A6D6 χ Χ χ
|
||||
A6D7 A6B7 A6D7 ψ Ψ ψ
|
||||
A6D8 A6B8 A6D8 ω Ω ω
|
||||
A7A1 A7A1 A7D1 А А а
|
||||
A7A2 A7A2 A7D2 Б Б б
|
||||
A7A3 A7A3 A7D3 В В в
|
||||
A7A4 A7A4 A7D4 Г Г г
|
||||
A7A5 A7A5 A7D5 Д Д д
|
||||
A7A6 A7A6 A7D6 Е Е е
|
||||
A7A7 A7A7 A7D7 Ё Ё ё
|
||||
A7A8 A7A8 A7D8 Ж Ж ж
|
||||
A7A9 A7A9 A7D9 З З з
|
||||
A7AA A7AA A7DA И И и
|
||||
A7AB A7AB A7DB Й Й й
|
||||
A7AC A7AC A7DC К К к
|
||||
A7AD A7AD A7DD Л Л л
|
||||
A7AE A7AE A7DE М М м
|
||||
A7AF A7AF A7DF Н Н н
|
||||
A7B0 A7B0 A7E0 О О о
|
||||
A7B1 A7B1 A7E1 П П п
|
||||
A7B2 A7B2 A7E2 Р Р р
|
||||
A7B3 A7B3 A7E3 С С с
|
||||
A7B4 A7B4 A7E4 Т Т т
|
||||
A7B5 A7B5 A7E5 У У у
|
||||
A7B6 A7B6 A7E6 Ф Ф ф
|
||||
A7B7 A7B7 A7E7 Х Х х
|
||||
A7B8 A7B8 A7E8 Ц Ц ц
|
||||
A7B9 A7B9 A7E9 Ч Ч ч
|
||||
A7BA A7BA A7EA Ш Ш ш
|
||||
A7BB A7BB A7EB Щ Щ щ
|
||||
A7BC A7BC A7EC Ъ Ъ ъ
|
||||
A7BD A7BD A7ED Ы Ы ы
|
||||
A7BE A7BE A7EE Ь Ь ь
|
||||
A7BF A7BF A7EF Э Э э
|
||||
A7C0 A7C0 A7F0 Ю Ю ю
|
||||
A7C1 A7C1 A7F1 Я Я я
|
||||
A7D1 A7A1 A7D1 а А а
|
||||
A7D2 A7A2 A7D2 б Б б
|
||||
A7D3 A7A3 A7D3 в В в
|
||||
A7D4 A7A4 A7D4 г Г г
|
||||
A7D5 A7A5 A7D5 д Д д
|
||||
A7D6 A7A6 A7D6 е Е е
|
||||
A7D7 A7A7 A7D7 ё Ё ё
|
||||
A7D8 A7A8 A7D8 ж Ж ж
|
||||
A7D9 A7A9 A7D9 з З з
|
||||
A7DA A7AA A7DA и И и
|
||||
A7DB A7AB A7DB й Й й
|
||||
A7DC A7AC A7DC к К к
|
||||
A7DD A7AD A7DD л Л л
|
||||
A7DE A7AE A7DE м М м
|
||||
A7DF A7AF A7DF н Н н
|
||||
A7E0 A7B0 A7E0 о О о
|
||||
A7E1 A7B1 A7E1 п П п
|
||||
A7E2 A7B2 A7E2 р Р р
|
||||
A7E3 A7B3 A7E3 с С с
|
||||
A7E4 A7B4 A7E4 т Т т
|
||||
A7E5 A7B5 A7E5 у У у
|
||||
A7E6 A7B6 A7E6 ф Ф ф
|
||||
A7E7 A7B7 A7E7 х Х х
|
||||
A7E8 A7B8 A7E8 ц Ц ц
|
||||
A7E9 A7B9 A7E9 ч Ч ч
|
||||
A7EA A7BA A7EA ш Ш ш
|
||||
A7EB A7BB A7EB щ Щ щ
|
||||
A7EC A7BC A7EC ъ Ъ ъ
|
||||
A7ED A7BD A7ED ы Ы ы
|
||||
A7EE A7BE A7EE ь Ь ь
|
||||
A7EF A7BF A7EF э Э э
|
||||
A7F0 A7C0 A7F0 ю Ю ю
|
||||
A7F1 A7C1 A7F1 я Я я
|
||||
ADB5 ADB5 8FF3F3 Ⅰ Ⅰ ⅰ
|
||||
ADB6 ADB6 8FF3F4 Ⅱ Ⅱ ⅱ
|
||||
ADB7 ADB7 8FF3F5 Ⅲ Ⅲ ⅲ
|
||||
ADB8 ADB8 8FF3F6 Ⅳ Ⅳ ⅳ
|
||||
ADB9 ADB9 8FF3F7 Ⅴ Ⅴ ⅴ
|
||||
ADBA ADBA 8FF3F8 Ⅵ Ⅵ ⅵ
|
||||
ADBB ADBB 8FF3F9 Ⅶ Ⅶ ⅶ
|
||||
ADBC ADBC 8FF3FA Ⅷ Ⅷ ⅷ
|
||||
ADBD ADBD 8FF3FB Ⅸ Ⅸ ⅸ
|
||||
ADBE ADBE 8FF3FC Ⅹ Ⅹ ⅹ
|
||||
SELECT * FROM t1
|
||||
WHERE HEX(CAST(LOWER(a) AS CHAR CHARACTER SET utf8)) <>
|
||||
HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
|
||||
code a
|
||||
8FAABC Ģ
|
||||
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
|
||||
8FA9C3 ð
|
||||
8FABB9 ǵ
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -24255,3 +24255,350 @@ FDFD FDFD E7BEB2 FDFD
|
||||
FDFE FDFE E8A9B0 FDFE
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.4 tests
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
#
|
||||
#
|
||||
# Testing WL#4583 Case conversion in Asian character sets
|
||||
#
|
||||
SET NAMES utf8;
|
||||
SET collation_connection=euckr_korean_ci;
|
||||
CREATE TABLE t1 (b VARCHAR(2));
|
||||
INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
|
||||
INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
|
||||
CREATE TEMPORARY TABLE head AS SELECT concat(b1.b, b2.b) AS head FROM t1 b1, t1 b2;
|
||||
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 concat(head, tail) AS code, ' ' AS a
|
||||
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;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(8) DEFAULT NULL,
|
||||
`a` varchar(1) CHARACTER SET euckr NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
UPDATE 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
|
||||
Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
|
||||
Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
|
||||
Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
|
||||
Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
|
||||
Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
|
||||
Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
|
||||
Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
|
||||
Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
|
||||
Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
|
||||
Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
|
||||
Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
|
||||
Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
|
||||
Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
|
||||
Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
|
||||
Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
|
||||
Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
|
||||
Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
|
||||
Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
|
||||
Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
|
||||
Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
|
||||
Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
|
||||
Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
|
||||
Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
|
||||
Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
|
||||
Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
|
||||
Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
|
||||
Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
|
||||
Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
|
||||
Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
|
||||
Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
|
||||
Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
|
||||
Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
|
||||
Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
|
||||
Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
|
||||
Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
|
||||
Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
|
||||
Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
|
||||
Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
|
||||
Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
|
||||
Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
|
||||
Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
|
||||
Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
|
||||
Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
|
||||
Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
|
||||
Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
|
||||
Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
|
||||
Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
|
||||
Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
|
||||
Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
|
||||
Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
|
||||
Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
|
||||
Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
|
||||
Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
|
||||
Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
|
||||
Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
|
||||
Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
|
||||
Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
|
||||
Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
|
||||
Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
|
||||
Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
|
||||
Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
|
||||
Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'';
|
||||
COUNT(*)
|
||||
22428
|
||||
SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
|
||||
code hex(upper(a)) hex(lower(a)) a upper(a) lower(a)
|
||||
A3C1 A3C1 A3E1 A A a
|
||||
A3C2 A3C2 A3E2 B B b
|
||||
A3C3 A3C3 A3E3 C C c
|
||||
A3C4 A3C4 A3E4 D D d
|
||||
A3C5 A3C5 A3E5 E E e
|
||||
A3C6 A3C6 A3E6 F F f
|
||||
A3C7 A3C7 A3E7 G G g
|
||||
A3C8 A3C8 A3E8 H H h
|
||||
A3C9 A3C9 A3E9 I I i
|
||||
A3CA A3CA A3EA J J j
|
||||
A3CB A3CB A3EB K K k
|
||||
A3CC A3CC A3EC L L l
|
||||
A3CD A3CD A3ED M M m
|
||||
A3CE A3CE A3EE N N n
|
||||
A3CF A3CF A3EF O O o
|
||||
A3D0 A3D0 A3F0 P P p
|
||||
A3D1 A3D1 A3F1 Q Q q
|
||||
A3D2 A3D2 A3F2 R R r
|
||||
A3D3 A3D3 A3F3 S S s
|
||||
A3D4 A3D4 A3F4 T T t
|
||||
A3D5 A3D5 A3F5 U U u
|
||||
A3D6 A3D6 A3F6 V V v
|
||||
A3D7 A3D7 A3F7 W W w
|
||||
A3D8 A3D8 A3F8 X X x
|
||||
A3D9 A3D9 A3F9 Y Y y
|
||||
A3DA A3DA A3FA Z Z z
|
||||
A3E1 A3C1 A3E1 a A a
|
||||
A3E2 A3C2 A3E2 b B b
|
||||
A3E3 A3C3 A3E3 c C c
|
||||
A3E4 A3C4 A3E4 d D d
|
||||
A3E5 A3C5 A3E5 e E e
|
||||
A3E6 A3C6 A3E6 f F f
|
||||
A3E7 A3C7 A3E7 g G g
|
||||
A3E8 A3C8 A3E8 h H h
|
||||
A3E9 A3C9 A3E9 i I i
|
||||
A3EA A3CA A3EA j J j
|
||||
A3EB A3CB A3EB k K k
|
||||
A3EC A3CC A3EC l L l
|
||||
A3ED A3CD A3ED m M m
|
||||
A3EE A3CE A3EE n N n
|
||||
A3EF A3CF A3EF o O o
|
||||
A3F0 A3D0 A3F0 p P p
|
||||
A3F1 A3D1 A3F1 q Q q
|
||||
A3F2 A3D2 A3F2 r R r
|
||||
A3F3 A3D3 A3F3 s S s
|
||||
A3F4 A3D4 A3F4 t T t
|
||||
A3F5 A3D5 A3F5 u U u
|
||||
A3F6 A3D6 A3F6 v V v
|
||||
A3F7 A3D7 A3F7 w W w
|
||||
A3F8 A3D8 A3F8 x X x
|
||||
A3F9 A3D9 A3F9 y Y y
|
||||
A3FA A3DA A3FA z Z z
|
||||
A5A1 A5B0 A5A1 ⅰ Ⅰ ⅰ
|
||||
A5A2 A5B1 A5A2 ⅱ Ⅱ ⅱ
|
||||
A5A3 A5B2 A5A3 ⅲ Ⅲ ⅲ
|
||||
A5A4 A5B3 A5A4 ⅳ Ⅳ ⅳ
|
||||
A5A5 A5B4 A5A5 ⅴ Ⅴ ⅴ
|
||||
A5A6 A5B5 A5A6 ⅵ Ⅵ ⅵ
|
||||
A5A7 A5B6 A5A7 ⅶ Ⅶ ⅶ
|
||||
A5A8 A5B7 A5A8 ⅷ Ⅷ ⅷ
|
||||
A5A9 A5B8 A5A9 ⅸ Ⅸ ⅸ
|
||||
A5AA A5B9 A5AA ⅹ Ⅹ ⅹ
|
||||
A5B0 A5B0 A5A1 Ⅰ Ⅰ ⅰ
|
||||
A5B1 A5B1 A5A2 Ⅱ Ⅱ ⅱ
|
||||
A5B2 A5B2 A5A3 Ⅲ Ⅲ ⅲ
|
||||
A5B3 A5B3 A5A4 Ⅳ Ⅳ ⅳ
|
||||
A5B4 A5B4 A5A5 Ⅴ Ⅴ ⅴ
|
||||
A5B5 A5B5 A5A6 Ⅵ Ⅵ ⅵ
|
||||
A5B6 A5B6 A5A7 Ⅶ Ⅶ ⅶ
|
||||
A5B7 A5B7 A5A8 Ⅷ Ⅷ ⅷ
|
||||
A5B8 A5B8 A5A9 Ⅸ Ⅸ ⅸ
|
||||
A5B9 A5B9 A5AA Ⅹ Ⅹ ⅹ
|
||||
A5C1 A5C1 A5E1 Α Α α
|
||||
A5C2 A5C2 A5E2 Β Β β
|
||||
A5C3 A5C3 A5E3 Γ Γ γ
|
||||
A5C4 A5C4 A5E4 Δ Δ δ
|
||||
A5C5 A5C5 A5E5 Ε Ε ε
|
||||
A5C6 A5C6 A5E6 Ζ Ζ ζ
|
||||
A5C7 A5C7 A5E7 Η Η η
|
||||
A5C8 A5C8 A5E8 Θ Θ θ
|
||||
A5C9 A5C9 A5E9 Ι Ι ι
|
||||
A5CA A5CA A5EA Κ Κ κ
|
||||
A5CB A5CB A5EB Λ Λ λ
|
||||
A5CC A5CC A5EC Μ Μ μ
|
||||
A5CD A5CD A5ED Ν Ν ν
|
||||
A5CE A5CE A5EE Ξ Ξ ξ
|
||||
A5CF A5CF A5EF Ο Ο ο
|
||||
A5D0 A5D0 A5F0 Π Π π
|
||||
A5D1 A5D1 A5F1 Ρ Ρ ρ
|
||||
A5D2 A5D2 A5F2 Σ Σ σ
|
||||
A5D3 A5D3 A5F3 Τ Τ τ
|
||||
A5D4 A5D4 A5F4 Υ Υ υ
|
||||
A5D5 A5D5 A5F5 Φ Φ φ
|
||||
A5D6 A5D6 A5F6 Χ Χ χ
|
||||
A5D7 A5D7 A5F7 Ψ Ψ ψ
|
||||
A5D8 A5D8 A5F8 Ω Ω ω
|
||||
A5E1 A5C1 A5E1 α Α α
|
||||
A5E2 A5C2 A5E2 β Β β
|
||||
A5E3 A5C3 A5E3 γ Γ γ
|
||||
A5E4 A5C4 A5E4 δ Δ δ
|
||||
A5E5 A5C5 A5E5 ε Ε ε
|
||||
A5E6 A5C6 A5E6 ζ Ζ ζ
|
||||
A5E7 A5C7 A5E7 η Η η
|
||||
A5E8 A5C8 A5E8 θ Θ θ
|
||||
A5E9 A5C9 A5E9 ι Ι ι
|
||||
A5EA A5CA A5EA κ Κ κ
|
||||
A5EB A5CB A5EB λ Λ λ
|
||||
A5EC A5CC A5EC μ Μ μ
|
||||
A5ED A5CD A5ED ν Ν ν
|
||||
A5EE A5CE A5EE ξ Ξ ξ
|
||||
A5EF A5CF A5EF ο Ο ο
|
||||
A5F0 A5D0 A5F0 π Π π
|
||||
A5F1 A5D1 A5F1 ρ Ρ ρ
|
||||
A5F2 A5D2 A5F2 σ Σ σ
|
||||
A5F3 A5D3 A5F3 τ Τ τ
|
||||
A5F4 A5D4 A5F4 υ Υ υ
|
||||
A5F5 A5D5 A5F5 φ Φ φ
|
||||
A5F6 A5D6 A5F6 χ Χ χ
|
||||
A5F7 A5D7 A5F7 ψ Ψ ψ
|
||||
A5F8 A5D8 A5F8 ω Ω ω
|
||||
A7D9 A7D9 A5F8 Ω Ω ω
|
||||
A8A1 A8A1 A9A1 Æ Æ æ
|
||||
A8A2 A8A2 A9A3 Ð Ð ð
|
||||
A8A4 A8A4 A9A4 Ħ Ħ ħ
|
||||
A8A6 A8A6 A9A6 IJ IJ ij
|
||||
A8A8 A8A8 A9A8 Ŀ Ŀ ŀ
|
||||
A8A9 A8A9 A9A9 Ł Ł ł
|
||||
A8AA A8AA A9AA Ø Ø ø
|
||||
A8AB A8AB A9AB Œ Œ œ
|
||||
A8AD A8AD A9AD Þ Þ þ
|
||||
A8AE A8AE A9AE Ŧ Ŧ ŧ
|
||||
A8AF A8AF A9AF Ŋ Ŋ ŋ
|
||||
A9A1 A8A1 A9A1 æ Æ æ
|
||||
A9A3 A8A2 A9A3 ð Ð ð
|
||||
A9A4 A8A4 A9A4 ħ Ħ ħ
|
||||
A9A5 49 A9A5 ı I ı
|
||||
A9A6 A8A6 A9A6 ij IJ ij
|
||||
A9A8 A8A8 A9A8 ŀ Ŀ ŀ
|
||||
A9A9 A8A9 A9A9 ł Ł ł
|
||||
A9AA A8AA A9AA ø Ø ø
|
||||
A9AB A8AB A9AB œ Œ œ
|
||||
A9AD A8AD A9AD þ Þ þ
|
||||
A9AE A8AE A9AE ŧ Ŧ ŧ
|
||||
A9AF A8AF A9AF ŋ Ŋ ŋ
|
||||
ACA1 ACA1 ACD1 А А а
|
||||
ACA2 ACA2 ACD2 Б Б б
|
||||
ACA3 ACA3 ACD3 В В в
|
||||
ACA4 ACA4 ACD4 Г Г г
|
||||
ACA5 ACA5 ACD5 Д Д д
|
||||
ACA6 ACA6 ACD6 Е Е е
|
||||
ACA7 ACA7 ACD7 Ё Ё ё
|
||||
ACA8 ACA8 ACD8 Ж Ж ж
|
||||
ACA9 ACA9 ACD9 З З з
|
||||
ACAA ACAA ACDA И И и
|
||||
ACAB ACAB ACDB Й Й й
|
||||
ACAC ACAC ACDC К К к
|
||||
ACAD ACAD ACDD Л Л л
|
||||
ACAE ACAE ACDE М М м
|
||||
ACAF ACAF ACDF Н Н н
|
||||
ACB0 ACB0 ACE0 О О о
|
||||
ACB1 ACB1 ACE1 П П п
|
||||
ACB2 ACB2 ACE2 Р Р р
|
||||
ACB3 ACB3 ACE3 С С с
|
||||
ACB4 ACB4 ACE4 Т Т т
|
||||
ACB5 ACB5 ACE5 У У у
|
||||
ACB6 ACB6 ACE6 Ф Ф ф
|
||||
ACB7 ACB7 ACE7 Х Х х
|
||||
ACB8 ACB8 ACE8 Ц Ц ц
|
||||
ACB9 ACB9 ACE9 Ч Ч ч
|
||||
ACBA ACBA ACEA Ш Ш ш
|
||||
ACBB ACBB ACEB Щ Щ щ
|
||||
ACBC ACBC ACEC Ъ Ъ ъ
|
||||
ACBD ACBD ACED Ы Ы ы
|
||||
ACBE ACBE ACEE Ь Ь ь
|
||||
ACBF ACBF ACEF Э Э э
|
||||
ACC0 ACC0 ACF0 Ю Ю ю
|
||||
ACC1 ACC1 ACF1 Я Я я
|
||||
ACD1 ACA1 ACD1 а А а
|
||||
ACD2 ACA2 ACD2 б Б б
|
||||
ACD3 ACA3 ACD3 в В в
|
||||
ACD4 ACA4 ACD4 г Г г
|
||||
ACD5 ACA5 ACD5 д Д д
|
||||
ACD6 ACA6 ACD6 е Е е
|
||||
ACD7 ACA7 ACD7 ё Ё ё
|
||||
ACD8 ACA8 ACD8 ж Ж ж
|
||||
ACD9 ACA9 ACD9 з З з
|
||||
ACDA ACAA ACDA и И и
|
||||
ACDB ACAB ACDB й Й й
|
||||
ACDC ACAC ACDC к К к
|
||||
ACDD ACAD ACDD л Л л
|
||||
ACDE ACAE ACDE м М м
|
||||
ACDF ACAF ACDF н Н н
|
||||
ACE0 ACB0 ACE0 о О о
|
||||
ACE1 ACB1 ACE1 п П п
|
||||
ACE2 ACB2 ACE2 р Р р
|
||||
ACE3 ACB3 ACE3 с С с
|
||||
ACE4 ACB4 ACE4 т Т т
|
||||
ACE5 ACB5 ACE5 у У у
|
||||
ACE6 ACB6 ACE6 ф Ф ф
|
||||
ACE7 ACB7 ACE7 х Х х
|
||||
ACE8 ACB8 ACE8 ц Ц ц
|
||||
ACE9 ACB9 ACE9 ч Ч ч
|
||||
ACEA ACBA ACEA ш Ш ш
|
||||
ACEB ACBB ACEB щ Щ щ
|
||||
ACEC ACBC ACEC ъ Ъ ъ
|
||||
ACED ACBD ACED ы Ы ы
|
||||
ACEE ACBE ACEE ь Ь ь
|
||||
ACEF ACBF ACEF э Э э
|
||||
ACF0 ACC0 ACF0 ю Ю ю
|
||||
ACF1 ACC1 ACF1 я Я я
|
||||
SELECT * FROM t1
|
||||
WHERE HEX(CAST(LOWER(a) AS CHAR CHARACTER SET utf8)) <>
|
||||
HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
|
||||
code a
|
||||
A1CA Å
|
||||
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
|
||||
A8CD ⓐ
|
||||
A8CE ⓑ
|
||||
A8CF ⓒ
|
||||
A8D0 ⓓ
|
||||
A8D1 ⓔ
|
||||
A8D2 ⓕ
|
||||
A8D3 ⓖ
|
||||
A8D4 ⓗ
|
||||
A8D5 ⓘ
|
||||
A8D6 ⓙ
|
||||
A8D7 ⓚ
|
||||
A8D8 ⓛ
|
||||
A8D9 ⓜ
|
||||
A8DA ⓝ
|
||||
A8DB ⓞ
|
||||
A8DC ⓟ
|
||||
A8DD ⓠ
|
||||
A8DE ⓡ
|
||||
A8DF ⓢ
|
||||
A8E0 ⓣ
|
||||
A8E1 ⓤ
|
||||
A8E2 ⓥ
|
||||
A8E3 ⓦ
|
||||
A8E4 ⓧ
|
||||
A8E5 ⓨ
|
||||
A8E6 ⓩ
|
||||
A9A2 đ
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -235,3 +235,316 @@ hex(a)
|
||||
A2A1
|
||||
D7FE
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
#
|
||||
#
|
||||
# Testing WL#4583 Case conversion in Asian character sets
|
||||
#
|
||||
SET NAMES utf8;
|
||||
SET collation_connection=gb2312_chinese_ci;
|
||||
CREATE TABLE t1 (b VARCHAR(2));
|
||||
INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
|
||||
INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
|
||||
CREATE TEMPORARY TABLE head AS SELECT concat(b1.b, b2.b) AS head FROM t1 b1, t1 b2;
|
||||
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 concat(head, tail) AS code, ' ' AS a
|
||||
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;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(8) DEFAULT NULL,
|
||||
`a` varchar(1) CHARACTER SET gb2312 NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
UPDATE 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
|
||||
Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
|
||||
Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
|
||||
Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
|
||||
Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
|
||||
Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
|
||||
Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
|
||||
Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
|
||||
Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
|
||||
Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
|
||||
Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
|
||||
Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
|
||||
Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
|
||||
Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
|
||||
Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
|
||||
Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
|
||||
Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
|
||||
Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
|
||||
Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
|
||||
Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
|
||||
Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
|
||||
Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
|
||||
Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
|
||||
Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
|
||||
Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
|
||||
Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
|
||||
Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
|
||||
Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
|
||||
Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
|
||||
Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
|
||||
Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
|
||||
Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
|
||||
Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
|
||||
Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
|
||||
Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
|
||||
Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
|
||||
Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
|
||||
Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
|
||||
Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
|
||||
Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
|
||||
Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
|
||||
Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
|
||||
Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
|
||||
Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
|
||||
Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
|
||||
Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
|
||||
Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
|
||||
Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
|
||||
Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
|
||||
Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
|
||||
Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
|
||||
Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
|
||||
Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
|
||||
Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
|
||||
Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
|
||||
Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
|
||||
Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
|
||||
Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
|
||||
Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
|
||||
Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
|
||||
Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
|
||||
Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
|
||||
Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'';
|
||||
COUNT(*)
|
||||
8178
|
||||
SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
|
||||
code hex(upper(a)) hex(lower(a)) a upper(a) lower(a)
|
||||
A3C1 A3C1 A3E1 A A a
|
||||
A3C2 A3C2 A3E2 B B b
|
||||
A3C3 A3C3 A3E3 C C c
|
||||
A3C4 A3C4 A3E4 D D d
|
||||
A3C5 A3C5 A3E5 E E e
|
||||
A3C6 A3C6 A3E6 F F f
|
||||
A3C7 A3C7 A3E7 G G g
|
||||
A3C8 A3C8 A3E8 H H h
|
||||
A3C9 A3C9 A3E9 I I i
|
||||
A3CA A3CA A3EA J J j
|
||||
A3CB A3CB A3EB K K k
|
||||
A3CC A3CC A3EC L L l
|
||||
A3CD A3CD A3ED M M m
|
||||
A3CE A3CE A3EE N N n
|
||||
A3CF A3CF A3EF O O o
|
||||
A3D0 A3D0 A3F0 P P p
|
||||
A3D1 A3D1 A3F1 Q Q q
|
||||
A3D2 A3D2 A3F2 R R r
|
||||
A3D3 A3D3 A3F3 S S s
|
||||
A3D4 A3D4 A3F4 T T t
|
||||
A3D5 A3D5 A3F5 U U u
|
||||
A3D6 A3D6 A3F6 V V v
|
||||
A3D7 A3D7 A3F7 W W w
|
||||
A3D8 A3D8 A3F8 X X x
|
||||
A3D9 A3D9 A3F9 Y Y y
|
||||
A3DA A3DA A3FA Z Z z
|
||||
A3E1 A3C1 A3E1 a A a
|
||||
A3E2 A3C2 A3E2 b B b
|
||||
A3E3 A3C3 A3E3 c C c
|
||||
A3E4 A3C4 A3E4 d D d
|
||||
A3E5 A3C5 A3E5 e E e
|
||||
A3E6 A3C6 A3E6 f F f
|
||||
A3E7 A3C7 A3E7 g G g
|
||||
A3E8 A3C8 A3E8 h H h
|
||||
A3E9 A3C9 A3E9 i I i
|
||||
A3EA A3CA A3EA j J j
|
||||
A3EB A3CB A3EB k K k
|
||||
A3EC A3CC A3EC l L l
|
||||
A3ED A3CD A3ED m M m
|
||||
A3EE A3CE A3EE n N n
|
||||
A3EF A3CF A3EF o O o
|
||||
A3F0 A3D0 A3F0 p P p
|
||||
A3F1 A3D1 A3F1 q Q q
|
||||
A3F2 A3D2 A3F2 r R r
|
||||
A3F3 A3D3 A3F3 s S s
|
||||
A3F4 A3D4 A3F4 t T t
|
||||
A3F5 A3D5 A3F5 u U u
|
||||
A3F6 A3D6 A3F6 v V v
|
||||
A3F7 A3D7 A3F7 w W w
|
||||
A3F8 A3D8 A3F8 x X x
|
||||
A3F9 A3D9 A3F9 y Y y
|
||||
A3FA A3DA A3FA z Z z
|
||||
A6A1 A6A1 A6C1 Α Α α
|
||||
A6A2 A6A2 A6C2 Β Β β
|
||||
A6A3 A6A3 A6C3 Γ Γ γ
|
||||
A6A4 A6A4 A6C4 Δ Δ δ
|
||||
A6A5 A6A5 A6C5 Ε Ε ε
|
||||
A6A6 A6A6 A6C6 Ζ Ζ ζ
|
||||
A6A7 A6A7 A6C7 Η Η η
|
||||
A6A8 A6A8 A6C8 Θ Θ θ
|
||||
A6A9 A6A9 A6C9 Ι Ι ι
|
||||
A6AA A6AA A6CA Κ Κ κ
|
||||
A6AB A6AB A6CB Λ Λ λ
|
||||
A6AC A6AC A6CC Μ Μ μ
|
||||
A6AD A6AD A6CD Ν Ν ν
|
||||
A6AE A6AE A6CE Ξ Ξ ξ
|
||||
A6AF A6AF A6CF Ο Ο ο
|
||||
A6B0 A6B0 A6D0 Π Π π
|
||||
A6B1 A6B1 A6D1 Ρ Ρ ρ
|
||||
A6B2 A6B2 A6D2 Σ Σ σ
|
||||
A6B3 A6B3 A6D3 Τ Τ τ
|
||||
A6B4 A6B4 A6D4 Υ Υ υ
|
||||
A6B5 A6B5 A6D5 Φ Φ φ
|
||||
A6B6 A6B6 A6D6 Χ Χ χ
|
||||
A6B7 A6B7 A6D7 Ψ Ψ ψ
|
||||
A6B8 A6B8 A6D8 Ω Ω ω
|
||||
A6C1 A6A1 A6C1 α Α α
|
||||
A6C2 A6A2 A6C2 β Β β
|
||||
A6C3 A6A3 A6C3 γ Γ γ
|
||||
A6C4 A6A4 A6C4 δ Δ δ
|
||||
A6C5 A6A5 A6C5 ε Ε ε
|
||||
A6C6 A6A6 A6C6 ζ Ζ ζ
|
||||
A6C7 A6A7 A6C7 η Η η
|
||||
A6C8 A6A8 A6C8 θ Θ θ
|
||||
A6C9 A6A9 A6C9 ι Ι ι
|
||||
A6CA A6AA A6CA κ Κ κ
|
||||
A6CB A6AB A6CB λ Λ λ
|
||||
A6CC A6AC A6CC μ Μ μ
|
||||
A6CD A6AD A6CD ν Ν ν
|
||||
A6CE A6AE A6CE ξ Ξ ξ
|
||||
A6CF A6AF A6CF ο Ο ο
|
||||
A6D0 A6B0 A6D0 π Π π
|
||||
A6D1 A6B1 A6D1 ρ Ρ ρ
|
||||
A6D2 A6B2 A6D2 σ Σ σ
|
||||
A6D3 A6B3 A6D3 τ Τ τ
|
||||
A6D4 A6B4 A6D4 υ Υ υ
|
||||
A6D5 A6B5 A6D5 φ Φ φ
|
||||
A6D6 A6B6 A6D6 χ Χ χ
|
||||
A6D7 A6B7 A6D7 ψ Ψ ψ
|
||||
A6D8 A6B8 A6D8 ω Ω ω
|
||||
A7A1 A7A1 A7D1 А А а
|
||||
A7A2 A7A2 A7D2 Б Б б
|
||||
A7A3 A7A3 A7D3 В В в
|
||||
A7A4 A7A4 A7D4 Г Г г
|
||||
A7A5 A7A5 A7D5 Д Д д
|
||||
A7A6 A7A6 A7D6 Е Е е
|
||||
A7A7 A7A7 A7D7 Ё Ё ё
|
||||
A7A8 A7A8 A7D8 Ж Ж ж
|
||||
A7A9 A7A9 A7D9 З З з
|
||||
A7AA A7AA A7DA И И и
|
||||
A7AB A7AB A7DB Й Й й
|
||||
A7AC A7AC A7DC К К к
|
||||
A7AD A7AD A7DD Л Л л
|
||||
A7AE A7AE A7DE М М м
|
||||
A7AF A7AF A7DF Н Н н
|
||||
A7B0 A7B0 A7E0 О О о
|
||||
A7B1 A7B1 A7E1 П П п
|
||||
A7B2 A7B2 A7E2 Р Р р
|
||||
A7B3 A7B3 A7E3 С С с
|
||||
A7B4 A7B4 A7E4 Т Т т
|
||||
A7B5 A7B5 A7E5 У У у
|
||||
A7B6 A7B6 A7E6 Ф Ф ф
|
||||
A7B7 A7B7 A7E7 Х Х х
|
||||
A7B8 A7B8 A7E8 Ц Ц ц
|
||||
A7B9 A7B9 A7E9 Ч Ч ч
|
||||
A7BA A7BA A7EA Ш Ш ш
|
||||
A7BB A7BB A7EB Щ Щ щ
|
||||
A7BC A7BC A7EC Ъ Ъ ъ
|
||||
A7BD A7BD A7ED Ы Ы ы
|
||||
A7BE A7BE A7EE Ь Ь ь
|
||||
A7BF A7BF A7EF Э Э э
|
||||
A7C0 A7C0 A7F0 Ю Ю ю
|
||||
A7C1 A7C1 A7F1 Я Я я
|
||||
A7D1 A7A1 A7D1 а А а
|
||||
A7D2 A7A2 A7D2 б Б б
|
||||
A7D3 A7A3 A7D3 в В в
|
||||
A7D4 A7A4 A7D4 г Г г
|
||||
A7D5 A7A5 A7D5 д Д д
|
||||
A7D6 A7A6 A7D6 е Е е
|
||||
A7D7 A7A7 A7D7 ё Ё ё
|
||||
A7D8 A7A8 A7D8 ж Ж ж
|
||||
A7D9 A7A9 A7D9 з З з
|
||||
A7DA A7AA A7DA и И и
|
||||
A7DB A7AB A7DB й Й й
|
||||
A7DC A7AC A7DC к К к
|
||||
A7DD A7AD A7DD л Л л
|
||||
A7DE A7AE A7DE м М м
|
||||
A7DF A7AF A7DF н Н н
|
||||
A7E0 A7B0 A7E0 о О о
|
||||
A7E1 A7B1 A7E1 п П п
|
||||
A7E2 A7B2 A7E2 р Р р
|
||||
A7E3 A7B3 A7E3 с С с
|
||||
A7E4 A7B4 A7E4 т Т т
|
||||
A7E5 A7B5 A7E5 у У у
|
||||
A7E6 A7B6 A7E6 ф Ф ф
|
||||
A7E7 A7B7 A7E7 х Х х
|
||||
A7E8 A7B8 A7E8 ц Ц ц
|
||||
A7E9 A7B9 A7E9 ч Ч ч
|
||||
A7EA A7BA A7EA ш Ш ш
|
||||
A7EB A7BB A7EB щ Щ щ
|
||||
A7EC A7BC A7EC ъ Ъ ъ
|
||||
A7ED A7BD A7ED ы Ы ы
|
||||
A7EE A7BE A7EE ь Ь ь
|
||||
A7EF A7BF A7EF э Э э
|
||||
A7F0 A7C0 A7F0 ю Ю ю
|
||||
A7F1 A7C1 A7F1 я Я я
|
||||
SELECT * FROM t1
|
||||
WHERE HEX(CAST(LOWER(a) AS CHAR CHARACTER SET utf8)) <>
|
||||
HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
|
||||
code a
|
||||
A2F1 Ⅰ
|
||||
A2F2 Ⅱ
|
||||
A2F3 Ⅲ
|
||||
A2F4 Ⅳ
|
||||
A2F5 Ⅴ
|
||||
A2F6 Ⅵ
|
||||
A2F7 Ⅶ
|
||||
A2F8 Ⅷ
|
||||
A2F9 Ⅸ
|
||||
A2FA Ⅹ
|
||||
A2FB Ⅺ
|
||||
A2FC Ⅻ
|
||||
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
|
||||
A8A1 ā
|
||||
A8A2 á
|
||||
A8A3 ǎ
|
||||
A8A4 à
|
||||
A8A5 ē
|
||||
A8A6 é
|
||||
A8A7 ě
|
||||
A8A8 è
|
||||
A8A9 ī
|
||||
A8AA í
|
||||
A8AB ǐ
|
||||
A8AC ì
|
||||
A8AD ō
|
||||
A8AE ó
|
||||
A8AF ǒ
|
||||
A8B0 ò
|
||||
A8B1 ū
|
||||
A8B2 ú
|
||||
A8B3 ǔ
|
||||
A8B4 ù
|
||||
A8B5 ǖ
|
||||
A8B6 ǘ
|
||||
A8B7 ǚ
|
||||
A8B8 ǜ
|
||||
A8B9 ü
|
||||
A8BA ê
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -255,3 +255,328 @@ SELECT a FROM t1 GROUP BY 1 LIMIT 1 INTO @nullll;
|
||||
SELECT b FROM t1 GROUP BY 1 LIMIT 1 INTO @nullll;
|
||||
DROP TABLES t1;
|
||||
End of 5.0 tests
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
#
|
||||
#
|
||||
# Testing WL#4583 Case conversion in Asian character sets
|
||||
#
|
||||
SET NAMES utf8;
|
||||
SET collation_connection=gbk_chinese_ci;
|
||||
CREATE TABLE t1 (b VARCHAR(2));
|
||||
INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
|
||||
INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
|
||||
CREATE TEMPORARY TABLE head AS SELECT concat(b1.b, b2.b) AS head FROM t1 b1, t1 b2;
|
||||
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 concat(head, tail) AS code, ' ' AS a
|
||||
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;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(8) DEFAULT NULL,
|
||||
`a` varchar(1) CHARACTER SET gbk NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
UPDATE 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
|
||||
Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
|
||||
Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
|
||||
Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
|
||||
Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
|
||||
Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
|
||||
Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
|
||||
Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
|
||||
Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
|
||||
Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
|
||||
Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
|
||||
Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
|
||||
Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
|
||||
Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
|
||||
Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
|
||||
Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
|
||||
Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
|
||||
Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
|
||||
Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
|
||||
Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
|
||||
Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
|
||||
Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
|
||||
Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
|
||||
Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
|
||||
Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
|
||||
Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
|
||||
Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
|
||||
Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
|
||||
Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
|
||||
Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
|
||||
Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
|
||||
Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
|
||||
Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
|
||||
Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
|
||||
Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
|
||||
Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
|
||||
Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
|
||||
Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
|
||||
Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
|
||||
Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
|
||||
Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
|
||||
Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
|
||||
Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
|
||||
Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
|
||||
Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
|
||||
Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
|
||||
Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
|
||||
Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
|
||||
Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
|
||||
Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
|
||||
Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
|
||||
Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
|
||||
Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
|
||||
Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
|
||||
Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
|
||||
Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
|
||||
Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
|
||||
Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
|
||||
Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
|
||||
Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
|
||||
Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
|
||||
Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
|
||||
Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'';
|
||||
COUNT(*)
|
||||
23940
|
||||
SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a));
|
||||
code hex(upper(a)) hex(lower(a)) a upper(a) lower(a)
|
||||
A2A1 A2F1 A2A1 ⅰ Ⅰ ⅰ
|
||||
A2A2 A2F2 A2A2 ⅱ Ⅱ ⅱ
|
||||
A2A3 A2F3 A2A3 ⅲ Ⅲ ⅲ
|
||||
A2A4 A2F4 A2A4 ⅳ Ⅳ ⅳ
|
||||
A2A5 A2F5 A2A5 ⅴ Ⅴ ⅴ
|
||||
A2A6 A2F6 A2A6 ⅵ Ⅵ ⅵ
|
||||
A2A7 A2F7 A2A7 ⅶ Ⅶ ⅶ
|
||||
A2A8 A2F8 A2A8 ⅷ Ⅷ ⅷ
|
||||
A2A9 A2F9 A2A9 ⅸ Ⅸ ⅸ
|
||||
A2AA A2FA A2AA ⅹ Ⅹ ⅹ
|
||||
A2F1 A2F1 A2A1 Ⅰ Ⅰ ⅰ
|
||||
A2F2 A2F2 A2A2 Ⅱ Ⅱ ⅱ
|
||||
A2F3 A2F3 A2A3 Ⅲ Ⅲ ⅲ
|
||||
A2F4 A2F4 A2A4 Ⅳ Ⅳ ⅳ
|
||||
A2F5 A2F5 A2A5 Ⅴ Ⅴ ⅴ
|
||||
A2F6 A2F6 A2A6 Ⅵ Ⅵ ⅵ
|
||||
A2F7 A2F7 A2A7 Ⅶ Ⅶ ⅶ
|
||||
A2F8 A2F8 A2A8 Ⅷ Ⅷ ⅷ
|
||||
A2F9 A2F9 A2A9 Ⅸ Ⅸ ⅸ
|
||||
A2FA A2FA A2AA Ⅹ Ⅹ ⅹ
|
||||
A3C1 A3C1 A3E1 A A a
|
||||
A3C2 A3C2 A3E2 B B b
|
||||
A3C3 A3C3 A3E3 C C c
|
||||
A3C4 A3C4 A3E4 D D d
|
||||
A3C5 A3C5 A3E5 E E e
|
||||
A3C6 A3C6 A3E6 F F f
|
||||
A3C7 A3C7 A3E7 G G g
|
||||
A3C8 A3C8 A3E8 H H h
|
||||
A3C9 A3C9 A3E9 I I i
|
||||
A3CA A3CA A3EA J J j
|
||||
A3CB A3CB A3EB K K k
|
||||
A3CC A3CC A3EC L L l
|
||||
A3CD A3CD A3ED M M m
|
||||
A3CE A3CE A3EE N N n
|
||||
A3CF A3CF A3EF O O o
|
||||
A3D0 A3D0 A3F0 P P p
|
||||
A3D1 A3D1 A3F1 Q Q q
|
||||
A3D2 A3D2 A3F2 R R r
|
||||
A3D3 A3D3 A3F3 S S s
|
||||
A3D4 A3D4 A3F4 T T t
|
||||
A3D5 A3D5 A3F5 U U u
|
||||
A3D6 A3D6 A3F6 V V v
|
||||
A3D7 A3D7 A3F7 W W w
|
||||
A3D8 A3D8 A3F8 X X x
|
||||
A3D9 A3D9 A3F9 Y Y y
|
||||
A3DA A3DA A3FA Z Z z
|
||||
A3E1 A3C1 A3E1 a A a
|
||||
A3E2 A3C2 A3E2 b B b
|
||||
A3E3 A3C3 A3E3 c C c
|
||||
A3E4 A3C4 A3E4 d D d
|
||||
A3E5 A3C5 A3E5 e E e
|
||||
A3E6 A3C6 A3E6 f F f
|
||||
A3E7 A3C7 A3E7 g G g
|
||||
A3E8 A3C8 A3E8 h H h
|
||||
A3E9 A3C9 A3E9 i I i
|
||||
A3EA A3CA A3EA j J j
|
||||
A3EB A3CB A3EB k K k
|
||||
A3EC A3CC A3EC l L l
|
||||
A3ED A3CD A3ED m M m
|
||||
A3EE A3CE A3EE n N n
|
||||
A3EF A3CF A3EF o O o
|
||||
A3F0 A3D0 A3F0 p P p
|
||||
A3F1 A3D1 A3F1 q Q q
|
||||
A3F2 A3D2 A3F2 r R r
|
||||
A3F3 A3D3 A3F3 s S s
|
||||
A3F4 A3D4 A3F4 t T t
|
||||
A3F5 A3D5 A3F5 u U u
|
||||
A3F6 A3D6 A3F6 v V v
|
||||
A3F7 A3D7 A3F7 w W w
|
||||
A3F8 A3D8 A3F8 x X x
|
||||
A3F9 A3D9 A3F9 y Y y
|
||||
A3FA A3DA A3FA z Z z
|
||||
A6A1 A6A1 A6C1 Α Α α
|
||||
A6A2 A6A2 A6C2 Β Β β
|
||||
A6A3 A6A3 A6C3 Γ Γ γ
|
||||
A6A4 A6A4 A6C4 Δ Δ δ
|
||||
A6A5 A6A5 A6C5 Ε Ε ε
|
||||
A6A6 A6A6 A6C6 Ζ Ζ ζ
|
||||
A6A7 A6A7 A6C7 Η Η η
|
||||
A6A8 A6A8 A6C8 Θ Θ θ
|
||||
A6A9 A6A9 A6C9 Ι Ι ι
|
||||
A6AA A6AA A6CA Κ Κ κ
|
||||
A6AB A6AB A6CB Λ Λ λ
|
||||
A6AC A6AC A6CC Μ Μ μ
|
||||
A6AD A6AD A6CD Ν Ν ν
|
||||
A6AE A6AE A6CE Ξ Ξ ξ
|
||||
A6AF A6AF A6CF Ο Ο ο
|
||||
A6B0 A6B0 A6D0 Π Π π
|
||||
A6B1 A6B1 A6D1 Ρ Ρ ρ
|
||||
A6B2 A6B2 A6D2 Σ Σ σ
|
||||
A6B3 A6B3 A6D3 Τ Τ τ
|
||||
A6B4 A6B4 A6D4 Υ Υ υ
|
||||
A6B5 A6B5 A6D5 Φ Φ φ
|
||||
A6B6 A6B6 A6D6 Χ Χ χ
|
||||
A6B7 A6B7 A6D7 Ψ Ψ ψ
|
||||
A6B8 A6B8 A6D8 Ω Ω ω
|
||||
A6C1 A6A1 A6C1 α Α α
|
||||
A6C2 A6A2 A6C2 β Β β
|
||||
A6C3 A6A3 A6C3 γ Γ γ
|
||||
A6C4 A6A4 A6C4 δ Δ δ
|
||||
A6C5 A6A5 A6C5 ε Ε ε
|
||||
A6C6 A6A6 A6C6 ζ Ζ ζ
|
||||
A6C7 A6A7 A6C7 η Η η
|
||||
A6C8 A6A8 A6C8 θ Θ θ
|
||||
A6C9 A6A9 A6C9 ι Ι ι
|
||||
A6CA A6AA A6CA κ Κ κ
|
||||
A6CB A6AB A6CB λ Λ λ
|
||||
A6CC A6AC A6CC μ Μ μ
|
||||
A6CD A6AD A6CD ν Ν ν
|
||||
A6CE A6AE A6CE ξ Ξ ξ
|
||||
A6CF A6AF A6CF ο Ο ο
|
||||
A6D0 A6B0 A6D0 π Π π
|
||||
A6D1 A6B1 A6D1 ρ Ρ ρ
|
||||
A6D2 A6B2 A6D2 σ Σ σ
|
||||
A6D3 A6B3 A6D3 τ Τ τ
|
||||
A6D4 A6B4 A6D4 υ Υ υ
|
||||
A6D5 A6B5 A6D5 φ Φ φ
|
||||
A6D6 A6B6 A6D6 χ Χ χ
|
||||
A6D7 A6B7 A6D7 ψ Ψ ψ
|
||||
A6D8 A6B8 A6D8 ω Ω ω
|
||||
A7A1 A7A1 A7D1 А А а
|
||||
A7A2 A7A2 A7D2 Б Б б
|
||||
A7A3 A7A3 A7D3 В В в
|
||||
A7A4 A7A4 A7D4 Г Г г
|
||||
A7A5 A7A5 A7D5 Д Д д
|
||||
A7A6 A7A6 A7D6 Е Е е
|
||||
A7A7 A7A7 A7D7 Ё Ё ё
|
||||
A7A8 A7A8 A7D8 Ж Ж ж
|
||||
A7A9 A7A9 A7D9 З З з
|
||||
A7AA A7AA A7DA И И и
|
||||
A7AB A7AB A7DB Й Й й
|
||||
A7AC A7AC A7DC К К к
|
||||
A7AD A7AD A7DD Л Л л
|
||||
A7AE A7AE A7DE М М м
|
||||
A7AF A7AF A7DF Н Н н
|
||||
A7B0 A7B0 A7E0 О О о
|
||||
A7B1 A7B1 A7E1 П П п
|
||||
A7B2 A7B2 A7E2 Р Р р
|
||||
A7B3 A7B3 A7E3 С С с
|
||||
A7B4 A7B4 A7E4 Т Т т
|
||||
A7B5 A7B5 A7E5 У У у
|
||||
A7B6 A7B6 A7E6 Ф Ф ф
|
||||
A7B7 A7B7 A7E7 Х Х х
|
||||
A7B8 A7B8 A7E8 Ц Ц ц
|
||||
A7B9 A7B9 A7E9 Ч Ч ч
|
||||
A7BA A7BA A7EA Ш Ш ш
|
||||
A7BB A7BB A7EB Щ Щ щ
|
||||
A7BC A7BC A7EC Ъ Ъ ъ
|
||||
A7BD A7BD A7ED Ы Ы ы
|
||||
A7BE A7BE A7EE Ь Ь ь
|
||||
A7BF A7BF A7EF Э Э э
|
||||
A7C0 A7C0 A7F0 Ю Ю ю
|
||||
A7C1 A7C1 A7F1 Я Я я
|
||||
A7D1 A7A1 A7D1 а А а
|
||||
A7D2 A7A2 A7D2 б Б б
|
||||
A7D3 A7A3 A7D3 в В в
|
||||
A7D4 A7A4 A7D4 г Г г
|
||||
A7D5 A7A5 A7D5 д Д д
|
||||
A7D6 A7A6 A7D6 е Е е
|
||||
A7D7 A7A7 A7D7 ё Ё ё
|
||||
A7D8 A7A8 A7D8 ж Ж ж
|
||||
A7D9 A7A9 A7D9 з З з
|
||||
A7DA A7AA A7DA и И и
|
||||
A7DB A7AB A7DB й Й й
|
||||
A7DC A7AC A7DC к К к
|
||||
A7DD A7AD A7DD л Л л
|
||||
A7DE A7AE A7DE м М м
|
||||
A7DF A7AF A7DF н Н н
|
||||
A7E0 A7B0 A7E0 о О о
|
||||
A7E1 A7B1 A7E1 п П п
|
||||
A7E2 A7B2 A7E2 р Р р
|
||||
A7E3 A7B3 A7E3 с С с
|
||||
A7E4 A7B4 A7E4 т Т т
|
||||
A7E5 A7B5 A7E5 у У у
|
||||
A7E6 A7B6 A7E6 ф Ф ф
|
||||
A7E7 A7B7 A7E7 х Х х
|
||||
A7E8 A7B8 A7E8 ц Ц ц
|
||||
A7E9 A7B9 A7E9 ч Ч ч
|
||||
A7EA A7BA A7EA ш Ш ш
|
||||
A7EB A7BB A7EB щ Щ щ
|
||||
A7EC A7BC A7EC ъ Ъ ъ
|
||||
A7ED A7BD A7ED ы Ы ы
|
||||
A7EE A7BE A7EE ь Ь ь
|
||||
A7EF A7BF A7EF э Э э
|
||||
A7F0 A7C0 A7F0 ю Ю ю
|
||||
A7F1 A7C1 A7F1 я Я я
|
||||
SELECT * FROM t1
|
||||
WHERE HEX(CAST(LOWER(a) AS CHAR CHARACTER SET utf8)) <>
|
||||
HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
|
||||
code a
|
||||
A2FB Ⅺ
|
||||
A2FC Ⅻ
|
||||
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
|
||||
A8A1 ā
|
||||
A8A2 á
|
||||
A8A3 ǎ
|
||||
A8A4 à
|
||||
A8A5 ē
|
||||
A8A6 é
|
||||
A8A7 ě
|
||||
A8A8 è
|
||||
A8A9 ī
|
||||
A8AA í
|
||||
A8AB ǐ
|
||||
A8AC ì
|
||||
A8AD ō
|
||||
A8AE ó
|
||||
A8AF ǒ
|
||||
A8B0 ò
|
||||
A8B1 ū
|
||||
A8B2 ú
|
||||
A8B3 ǔ
|
||||
A8B4 ù
|
||||
A8B5 ǖ
|
||||
A8B6 ǘ
|
||||
A8B7 ǚ
|
||||
A8B8 ǜ
|
||||
A8B9 ü
|
||||
A8BA ê
|
||||
A8BD ń
|
||||
A8BE ň
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -219,3 +219,290 @@ hex(a) hex(lower(a)) hex(upper(a))
|
||||
8372835E 8372835E 8372835E
|
||||
DROP TABLE t1;
|
||||
# End of 5.1 tests
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
#
|
||||
#
|
||||
# Testing WL#4583 Case conversion in Asian character sets
|
||||
#
|
||||
SET NAMES utf8;
|
||||
SET collation_connection=sjis_japanese_ci;
|
||||
CREATE TABLE t1 (b VARCHAR(2));
|
||||
INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
|
||||
INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
|
||||
CREATE TEMPORARY TABLE head AS SELECT concat(b1.b, b2.b) AS head FROM t1 b1, t1 b2;
|
||||
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 concat(head, tail) AS code, ' ' AS a
|
||||
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');
|
||||
DROP TEMPORARY TABLE head, tail;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(8) DEFAULT NULL,
|
||||
`a` varchar(1) CHARACTER SET sjis NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
UPDATE 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
|
||||
Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
|
||||
Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
|
||||
Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
|
||||
Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
|
||||
Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
|
||||
Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
|
||||
Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
|
||||
Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
|
||||
Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
|
||||
Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
|
||||
Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
|
||||
Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
|
||||
Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
|
||||
Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
|
||||
Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
|
||||
Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
|
||||
Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
|
||||
Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
|
||||
Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
|
||||
Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
|
||||
Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
|
||||
Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
|
||||
Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
|
||||
Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
|
||||
Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
|
||||
Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
|
||||
Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
|
||||
Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
|
||||
Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
|
||||
Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
|
||||
Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
|
||||
Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
|
||||
Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
|
||||
Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
|
||||
Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
|
||||
Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
|
||||
Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
|
||||
Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
|
||||
Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
|
||||
Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
|
||||
Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
|
||||
Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
|
||||
Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
|
||||
Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
|
||||
Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
|
||||
Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
|
||||
Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
|
||||
Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
|
||||
Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
|
||||
Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
|
||||
Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
|
||||
Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
|
||||
Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
|
||||
Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
|
||||
Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
|
||||
Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
|
||||
Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
|
||||
Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
|
||||
Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
|
||||
Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
|
||||
Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
|
||||
Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
14623
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'' AND OCTET_LENGTH(a)=1;
|
||||
COUNT(*)
|
||||
63
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'' AND OCTET_LENGTH(a)=2;
|
||||
COUNT(*)
|
||||
11280
|
||||
SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a)
|
||||
FROM t1
|
||||
WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a))
|
||||
ORDER BY code;
|
||||
code hex(upper(a)) hex(lower(a)) a upper(a) lower(a)
|
||||
8260 8260 8281 A A a
|
||||
8261 8261 8282 B B b
|
||||
8262 8262 8283 C C c
|
||||
8263 8263 8284 D D d
|
||||
8264 8264 8285 E E e
|
||||
8265 8265 8286 F F f
|
||||
8266 8266 8287 G G g
|
||||
8267 8267 8288 H H h
|
||||
8268 8268 8289 I I i
|
||||
8269 8269 828A J J j
|
||||
826A 826A 828B K K k
|
||||
826B 826B 828C L L l
|
||||
826C 826C 828D M M m
|
||||
826D 826D 828E N N n
|
||||
826E 826E 828F O O o
|
||||
826F 826F 8290 P P p
|
||||
8270 8270 8291 Q Q q
|
||||
8271 8271 8292 R R r
|
||||
8272 8272 8293 S S s
|
||||
8273 8273 8294 T T t
|
||||
8274 8274 8295 U U u
|
||||
8275 8275 8296 V V v
|
||||
8276 8276 8297 W W w
|
||||
8277 8277 8298 X X x
|
||||
8278 8278 8299 Y Y y
|
||||
8279 8279 829A Z Z z
|
||||
8281 8260 8281 a A a
|
||||
8282 8261 8282 b B b
|
||||
8283 8262 8283 c C c
|
||||
8284 8263 8284 d D d
|
||||
8285 8264 8285 e E e
|
||||
8286 8265 8286 f F f
|
||||
8287 8266 8287 g G g
|
||||
8288 8267 8288 h H h
|
||||
8289 8268 8289 i I i
|
||||
828A 8269 828A j J j
|
||||
828B 826A 828B k K k
|
||||
828C 826B 828C l L l
|
||||
828D 826C 828D m M m
|
||||
828E 826D 828E n N n
|
||||
828F 826E 828F o O o
|
||||
8290 826F 8290 p P p
|
||||
8291 8270 8291 q Q q
|
||||
8292 8271 8292 r R r
|
||||
8293 8272 8293 s S s
|
||||
8294 8273 8294 t T t
|
||||
8295 8274 8295 u U u
|
||||
8296 8275 8296 v V v
|
||||
8297 8276 8297 w W w
|
||||
8298 8277 8298 x X x
|
||||
8299 8278 8299 y Y y
|
||||
829A 8279 829A z Z z
|
||||
839F 839F 83BF Α Α α
|
||||
83A0 83A0 83C0 Β Β β
|
||||
83A1 83A1 83C1 Γ Γ γ
|
||||
83A2 83A2 83C2 Δ Δ δ
|
||||
83A3 83A3 83C3 Ε Ε ε
|
||||
83A4 83A4 83C4 Ζ Ζ ζ
|
||||
83A5 83A5 83C5 Η Η η
|
||||
83A6 83A6 83C6 Θ Θ θ
|
||||
83A7 83A7 83C7 Ι Ι ι
|
||||
83A8 83A8 83C8 Κ Κ κ
|
||||
83A9 83A9 83C9 Λ Λ λ
|
||||
83AA 83AA 83CA Μ Μ μ
|
||||
83AB 83AB 83CB Ν Ν ν
|
||||
83AC 83AC 83CC Ξ Ξ ξ
|
||||
83AD 83AD 83CD Ο Ο ο
|
||||
83AE 83AE 83CE Π Π π
|
||||
83AF 83AF 83CF Ρ Ρ ρ
|
||||
83B0 83B0 83D0 Σ Σ σ
|
||||
83B1 83B1 83D1 Τ Τ τ
|
||||
83B2 83B2 83D2 Υ Υ υ
|
||||
83B3 83B3 83D3 Φ Φ φ
|
||||
83B4 83B4 83D4 Χ Χ χ
|
||||
83B5 83B5 83D5 Ψ Ψ ψ
|
||||
83B6 83B6 83D6 Ω Ω ω
|
||||
83BF 839F 83BF α Α α
|
||||
83C0 83A0 83C0 β Β β
|
||||
83C1 83A1 83C1 γ Γ γ
|
||||
83C2 83A2 83C2 δ Δ δ
|
||||
83C3 83A3 83C3 ε Ε ε
|
||||
83C4 83A4 83C4 ζ Ζ ζ
|
||||
83C5 83A5 83C5 η Η η
|
||||
83C6 83A6 83C6 θ Θ θ
|
||||
83C7 83A7 83C7 ι Ι ι
|
||||
83C8 83A8 83C8 κ Κ κ
|
||||
83C9 83A9 83C9 λ Λ λ
|
||||
83CA 83AA 83CA μ Μ μ
|
||||
83CB 83AB 83CB ν Ν ν
|
||||
83CC 83AC 83CC ξ Ξ ξ
|
||||
83CD 83AD 83CD ο Ο ο
|
||||
83CE 83AE 83CE π Π π
|
||||
83CF 83AF 83CF ρ Ρ ρ
|
||||
83D0 83B0 83D0 σ Σ σ
|
||||
83D1 83B1 83D1 τ Τ τ
|
||||
83D2 83B2 83D2 υ Υ υ
|
||||
83D3 83B3 83D3 φ Φ φ
|
||||
83D4 83B4 83D4 χ Χ χ
|
||||
83D5 83B5 83D5 ψ Ψ ψ
|
||||
83D6 83B6 83D6 ω Ω ω
|
||||
8440 8440 8470 А А а
|
||||
8441 8441 8471 Б Б б
|
||||
8442 8442 8472 В В в
|
||||
8443 8443 8473 Г Г г
|
||||
8444 8444 8474 Д Д д
|
||||
8445 8445 8475 Е Е е
|
||||
8446 8446 8476 Ё Ё ё
|
||||
8447 8447 8477 Ж Ж ж
|
||||
8448 8448 8478 З З з
|
||||
8449 8449 8479 И И и
|
||||
844A 844A 847A Й Й й
|
||||
844B 844B 847B К К к
|
||||
844C 844C 847C Л Л л
|
||||
844D 844D 847D М М м
|
||||
844E 844E 847E Н Н н
|
||||
844F 844F 8480 О О о
|
||||
8450 8450 8481 П П п
|
||||
8451 8451 8482 Р Р р
|
||||
8452 8452 8483 С С с
|
||||
8453 8453 8484 Т Т т
|
||||
8454 8454 8485 У У у
|
||||
8455 8455 8486 Ф Ф ф
|
||||
8456 8456 8487 Х Х х
|
||||
8457 8457 8488 Ц Ц ц
|
||||
8458 8458 8489 Ч Ч ч
|
||||
8459 8459 848A Ш Ш ш
|
||||
845A 845A 848B Щ Щ щ
|
||||
845B 845B 848C Ъ Ъ ъ
|
||||
845C 845C 848D Ы Ы ы
|
||||
845D 845D 848E Ь Ь ь
|
||||
845E 845E 848F Э Э э
|
||||
845F 845F 8490 Ю Ю ю
|
||||
8460 8460 8491 Я Я я
|
||||
8470 8440 8470 а А а
|
||||
8471 8441 8471 б Б б
|
||||
8472 8442 8472 в В в
|
||||
8473 8443 8473 г Г г
|
||||
8474 8444 8474 д Д д
|
||||
8475 8445 8475 е Е е
|
||||
8476 8446 8476 ё Ё ё
|
||||
8477 8447 8477 ж Ж ж
|
||||
8478 8448 8478 з З з
|
||||
8479 8449 8479 и И и
|
||||
847A 844A 847A й Й й
|
||||
847B 844B 847B к К к
|
||||
847C 844C 847C л Л л
|
||||
847D 844D 847D м М м
|
||||
847E 844E 847E н Н н
|
||||
8480 844F 8480 о О о
|
||||
8481 8450 8481 п П п
|
||||
8482 8451 8482 р Р р
|
||||
8483 8452 8483 с С с
|
||||
8484 8453 8484 т Т т
|
||||
8485 8454 8485 у У у
|
||||
8486 8455 8486 ф Ф ф
|
||||
8487 8456 8487 х Х х
|
||||
8488 8457 8488 ц Ц ц
|
||||
8489 8458 8489 ч Ч ч
|
||||
848A 8459 848A ш Ш ш
|
||||
848B 845A 848B щ Щ щ
|
||||
848C 845B 848C ъ Ъ ъ
|
||||
848D 845C 848D ы Ы ы
|
||||
848E 845D 848E ь Ь ь
|
||||
848F 845E 848F э Э э
|
||||
8490 845F 8490 ю Ю ю
|
||||
8491 8460 8491 я Я я
|
||||
SELECT * FROM t1
|
||||
WHERE HEX(CAST(LOWER(a) AS CHAR CHARACTER SET utf8)) <>
|
||||
HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
|
||||
code a
|
||||
81F0 Å
|
||||
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
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -2377,3 +2377,535 @@ DROP TABLE t2;
|
||||
set names default;
|
||||
set character_set_database=default;
|
||||
set character_set_server=default;
|
||||
#
|
||||
# Start of 5.5 tests
|
||||
#
|
||||
#
|
||||
# Testing WL#4583 Case conversion in Asian character sets
|
||||
#
|
||||
SET NAMES utf8;
|
||||
SET collation_connection=ujis_japanese_ci;
|
||||
CREATE TABLE t1 (b VARCHAR(2));
|
||||
INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
|
||||
INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
|
||||
CREATE TEMPORARY TABLE head AS SELECT concat(b1.b, b2.b) AS head FROM t1 b1, t1 b2;
|
||||
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
|
||||
WHERE (head BETWEEN 'A1' AND 'DF') ORDER BY head;
|
||||
INSERT 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;
|
||||
INSERT 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;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(6) CHARACTER SET ujis NOT NULL DEFAULT '',
|
||||
`a` varchar(1) CHARACTER SET ujis NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
UPDATE 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
|
||||
Warning 1366 Incorrect string value: '\x80"' for column 'a' at row 3
|
||||
Warning 1366 Incorrect string value: '\x80#' for column 'a' at row 4
|
||||
Warning 1366 Incorrect string value: '\x80$' for column 'a' at row 5
|
||||
Warning 1366 Incorrect string value: '\x80%' for column 'a' at row 6
|
||||
Warning 1366 Incorrect string value: '\x80&' for column 'a' at row 7
|
||||
Warning 1366 Incorrect string value: '\x80'' for column 'a' at row 8
|
||||
Warning 1366 Incorrect string value: '\x80(' for column 'a' at row 9
|
||||
Warning 1366 Incorrect string value: '\x80)' for column 'a' at row 10
|
||||
Warning 1366 Incorrect string value: '\x80*' for column 'a' at row 11
|
||||
Warning 1366 Incorrect string value: '\x80+' for column 'a' at row 12
|
||||
Warning 1366 Incorrect string value: '\x80,' for column 'a' at row 13
|
||||
Warning 1366 Incorrect string value: '\x80-' for column 'a' at row 14
|
||||
Warning 1366 Incorrect string value: '\x80.' for column 'a' at row 15
|
||||
Warning 1366 Incorrect string value: '\x80/' for column 'a' at row 16
|
||||
Warning 1366 Incorrect string value: '\x800' for column 'a' at row 17
|
||||
Warning 1366 Incorrect string value: '\x801' for column 'a' at row 18
|
||||
Warning 1366 Incorrect string value: '\x802' for column 'a' at row 19
|
||||
Warning 1366 Incorrect string value: '\x803' for column 'a' at row 20
|
||||
Warning 1366 Incorrect string value: '\x804' for column 'a' at row 21
|
||||
Warning 1366 Incorrect string value: '\x805' for column 'a' at row 22
|
||||
Warning 1366 Incorrect string value: '\x806' for column 'a' at row 23
|
||||
Warning 1366 Incorrect string value: '\x807' for column 'a' at row 24
|
||||
Warning 1366 Incorrect string value: '\x808' for column 'a' at row 25
|
||||
Warning 1366 Incorrect string value: '\x809' for column 'a' at row 26
|
||||
Warning 1366 Incorrect string value: '\x80:' for column 'a' at row 27
|
||||
Warning 1366 Incorrect string value: '\x80;' for column 'a' at row 28
|
||||
Warning 1366 Incorrect string value: '\x80<' for column 'a' at row 29
|
||||
Warning 1366 Incorrect string value: '\x80=' for column 'a' at row 30
|
||||
Warning 1366 Incorrect string value: '\x80>' for column 'a' at row 31
|
||||
Warning 1366 Incorrect string value: '\x80?' for column 'a' at row 32
|
||||
Warning 1366 Incorrect string value: '\x80@' for column 'a' at row 33
|
||||
Warning 1366 Incorrect string value: '\x80A' for column 'a' at row 34
|
||||
Warning 1366 Incorrect string value: '\x80B' for column 'a' at row 35
|
||||
Warning 1366 Incorrect string value: '\x80C' for column 'a' at row 36
|
||||
Warning 1366 Incorrect string value: '\x80D' for column 'a' at row 37
|
||||
Warning 1366 Incorrect string value: '\x80E' for column 'a' at row 38
|
||||
Warning 1366 Incorrect string value: '\x80F' for column 'a' at row 39
|
||||
Warning 1366 Incorrect string value: '\x80G' for column 'a' at row 40
|
||||
Warning 1366 Incorrect string value: '\x80H' for column 'a' at row 41
|
||||
Warning 1366 Incorrect string value: '\x80I' for column 'a' at row 42
|
||||
Warning 1366 Incorrect string value: '\x80J' for column 'a' at row 43
|
||||
Warning 1366 Incorrect string value: '\x80K' for column 'a' at row 44
|
||||
Warning 1366 Incorrect string value: '\x80L' for column 'a' at row 45
|
||||
Warning 1366 Incorrect string value: '\x80M' for column 'a' at row 46
|
||||
Warning 1366 Incorrect string value: '\x80N' for column 'a' at row 47
|
||||
Warning 1366 Incorrect string value: '\x80O' for column 'a' at row 48
|
||||
Warning 1366 Incorrect string value: '\x80P' for column 'a' at row 49
|
||||
Warning 1366 Incorrect string value: '\x80Q' for column 'a' at row 50
|
||||
Warning 1366 Incorrect string value: '\x80R' for column 'a' at row 51
|
||||
Warning 1366 Incorrect string value: '\x80S' for column 'a' at row 52
|
||||
Warning 1366 Incorrect string value: '\x80T' for column 'a' at row 53
|
||||
Warning 1366 Incorrect string value: '\x80U' for column 'a' at row 54
|
||||
Warning 1366 Incorrect string value: '\x80V' for column 'a' at row 55
|
||||
Warning 1366 Incorrect string value: '\x80W' for column 'a' at row 56
|
||||
Warning 1366 Incorrect string value: '\x80X' for column 'a' at row 57
|
||||
Warning 1366 Incorrect string value: '\x80Y' for column 'a' at row 58
|
||||
Warning 1366 Incorrect string value: '\x80Z' for column 'a' at row 59
|
||||
Warning 1366 Incorrect string value: '\x80[' for column 'a' at row 60
|
||||
Warning 1366 Incorrect string value: '\x80\' for column 'a' at row 61
|
||||
Warning 1366 Incorrect string value: '\x80]' for column 'a' at row 62
|
||||
Warning 1366 Incorrect string value: '\x80^' for column 'a' at row 63
|
||||
Warning 1366 Incorrect string value: '\x80_' for column 'a' at row 64
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
44671
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'';
|
||||
COUNT(*)
|
||||
17735
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'' AND OCTET_LENGTH(a)=2;
|
||||
COUNT(*)
|
||||
8899
|
||||
SELECT COUNT(*) FROM t1 WHERE a<>'' AND OCTET_LENGTH(a)=3;
|
||||
COUNT(*)
|
||||
8836
|
||||
SELECT code, hex(upper(a)), hex(lower(a)),a, upper(a), lower(a) FROM t1 WHERE hex(a)<>hex(upper(a)) OR hex(a)<>hex(lower(a)) ORDER BY code;
|
||||
code hex(upper(a)) hex(lower(a)) a upper(a) lower(a)
|
||||
8FA6E1 8FA6E1 8FA6F1 Ά Ά ά
|
||||
8FA6E2 8FA6E2 8FA6F2 Έ Έ έ
|
||||
8FA6E3 8FA6E3 8FA6F3 Ή Ή ή
|
||||
8FA6E4 8FA6E4 8FA6F4 Ί Ί ί
|
||||
8FA6E5 8FA6E5 8FA6F5 Ϊ Ϊ ϊ
|
||||
8FA6E7 8FA6E7 8FA6F7 Ό Ό ό
|
||||
8FA6E9 8FA6E9 8FA6F9 Ύ Ύ ύ
|
||||
8FA6EA 8FA6EA 8FA6FA Ϋ Ϋ ϋ
|
||||
8FA6EC 8FA6EC 8FA6FC Ώ Ώ ώ
|
||||
8FA6F1 8FA6E1 8FA6F1 ά Ά ά
|
||||
8FA6F2 8FA6E2 8FA6F2 έ Έ έ
|
||||
8FA6F3 8FA6E3 8FA6F3 ή Ή ή
|
||||
8FA6F4 8FA6E4 8FA6F4 ί Ί ί
|
||||
8FA6F5 8FA6E5 8FA6F5 ϊ Ϊ ϊ
|
||||
8FA6F7 8FA6E7 8FA6F7 ό Ό ό
|
||||
8FA6F8 A6B2 8FA6F8 ς Σ ς
|
||||
8FA6F9 8FA6E9 8FA6F9 ύ Ύ ύ
|
||||
8FA6FA 8FA6EA 8FA6FA ϋ Ϋ ϋ
|
||||
8FA6FC 8FA6EC 8FA6FC ώ Ώ ώ
|
||||
8FA7C2 8FA7C2 8FA7F2 Ђ Ђ ђ
|
||||
8FA7C3 8FA7C3 8FA7F3 Ѓ Ѓ ѓ
|
||||
8FA7C4 8FA7C4 8FA7F4 Є Є є
|
||||
8FA7C5 8FA7C5 8FA7F5 Ѕ Ѕ ѕ
|
||||
8FA7C6 8FA7C6 8FA7F6 І І і
|
||||
8FA7C7 8FA7C7 8FA7F7 Ї Ї ї
|
||||
8FA7C8 8FA7C8 8FA7F8 Ј Ј ј
|
||||
8FA7C9 8FA7C9 8FA7F9 Љ Љ љ
|
||||
8FA7CA 8FA7CA 8FA7FA Њ Њ њ
|
||||
8FA7CB 8FA7CB 8FA7FB Ћ Ћ ћ
|
||||
8FA7CC 8FA7CC 8FA7FC Ќ Ќ ќ
|
||||
8FA7CD 8FA7CD 8FA7FD Ў Ў ў
|
||||
8FA7CE 8FA7CE 8FA7FE Џ Џ џ
|
||||
8FA7F2 8FA7C2 8FA7F2 ђ Ђ ђ
|
||||
8FA7F3 8FA7C3 8FA7F3 ѓ Ѓ ѓ
|
||||
8FA7F4 8FA7C4 8FA7F4 є Є є
|
||||
8FA7F5 8FA7C5 8FA7F5 ѕ Ѕ ѕ
|
||||
8FA7F6 8FA7C6 8FA7F6 і І і
|
||||
8FA7F7 8FA7C7 8FA7F7 ї Ї ї
|
||||
8FA7F8 8FA7C8 8FA7F8 ј Ј ј
|
||||
8FA7F9 8FA7C9 8FA7F9 љ Љ љ
|
||||
8FA7FA 8FA7CA 8FA7FA њ Њ њ
|
||||
8FA7FB 8FA7CB 8FA7FB ћ Ћ ћ
|
||||
8FA7FC 8FA7CC 8FA7FC ќ Ќ ќ
|
||||
8FA7FD 8FA7CD 8FA7FD ў Ў ў
|
||||
8FA7FE 8FA7CE 8FA7FE џ Џ џ
|
||||
8FA9A1 8FA9A1 8FA9C1 Æ Æ æ
|
||||
8FA9A2 8FA9A2 8FA9C2 Đ Đ đ
|
||||
8FA9A4 8FA9A4 8FA9C4 Ħ Ħ ħ
|
||||
8FA9A6 8FA9A6 8FA9C6 IJ IJ ij
|
||||
8FA9A8 8FA9A8 8FA9C8 Ł Ł ł
|
||||
8FA9A9 8FA9A9 8FA9C9 Ŀ Ŀ ŀ
|
||||
8FA9AB 8FA9AB 8FA9CB Ŋ Ŋ ŋ
|
||||
8FA9AC 8FA9AC 8FA9CC Ø Ø ø
|
||||
8FA9AD 8FA9AD 8FA9CD Œ Œ œ
|
||||
8FA9AF 8FA9AF 8FA9CF Ŧ Ŧ ŧ
|
||||
8FA9B0 8FA9B0 8FA9D0 Þ Þ þ
|
||||
8FA9C1 8FA9A1 8FA9C1 æ Æ æ
|
||||
8FA9C2 8FA9A2 8FA9C2 đ Đ đ
|
||||
8FA9C4 8FA9A4 8FA9C4 ħ Ħ ħ
|
||||
8FA9C5 49 8FA9C5 ı I ı
|
||||
8FA9C6 8FA9A6 8FA9C6 ij IJ ij
|
||||
8FA9C8 8FA9A8 8FA9C8 ł Ł ł
|
||||
8FA9C9 8FA9A9 8FA9C9 ŀ Ŀ ŀ
|
||||
8FA9CB 8FA9AB 8FA9CB ŋ Ŋ ŋ
|
||||
8FA9CC 8FA9AC 8FA9CC ø Ø ø
|
||||
8FA9CD 8FA9AD 8FA9CD œ Œ œ
|
||||
8FA9CF 8FA9AF 8FA9CF ŧ Ŧ ŧ
|
||||
8FA9D0 8FA9B0 8FA9D0 þ Þ þ
|
||||
8FAAA1 8FAAA1 8FABA1 Á Á á
|
||||
8FAAA2 8FAAA2 8FABA2 À À à
|
||||
8FAAA3 8FAAA3 8FABA3 Ä Ä ä
|
||||
8FAAA4 8FAAA4 8FABA4 Â Â â
|
||||
8FAAA5 8FAAA5 8FABA5 Ă Ă ă
|
||||
8FAAA6 8FAAA6 8FABA6 Ǎ Ǎ ǎ
|
||||
8FAAA7 8FAAA7 8FABA7 Ā Ā ā
|
||||
8FAAA8 8FAAA8 8FABA8 Ą Ą ą
|
||||
8FAAA9 8FAAA9 8FABA9 Å Å å
|
||||
8FAAAA 8FAAAA 8FABAA Ã Ã ã
|
||||
8FAAAB 8FAAAB 8FABAB Ć Ć ć
|
||||
8FAAAC 8FAAAC 8FABAC Ĉ Ĉ ĉ
|
||||
8FAAAD 8FAAAD 8FABAD Č Č č
|
||||
8FAAAE 8FAAAE 8FABAE Ç Ç ç
|
||||
8FAAAF 8FAAAF 8FABAF Ċ Ċ ċ
|
||||
8FAAB0 8FAAB0 8FABB0 Ď Ď ď
|
||||
8FAAB1 8FAAB1 8FABB1 É É é
|
||||
8FAAB2 8FAAB2 8FABB2 È È è
|
||||
8FAAB3 8FAAB3 8FABB3 Ë Ë ë
|
||||
8FAAB4 8FAAB4 8FABB4 Ê Ê ê
|
||||
8FAAB5 8FAAB5 8FABB5 Ě Ě ě
|
||||
8FAAB6 8FAAB6 8FABB6 Ė Ė ė
|
||||
8FAAB7 8FAAB7 8FABB7 Ē Ē ē
|
||||
8FAAB8 8FAAB8 8FABB8 Ę Ę ę
|
||||
8FAABA 8FAABA 8FABBA Ĝ Ĝ ĝ
|
||||
8FAABB 8FAABB 8FABBB Ğ Ğ ğ
|
||||
8FAABD 8FAABD 8FABBD Ġ Ġ ġ
|
||||
8FAABE 8FAABE 8FABBE Ĥ Ĥ ĥ
|
||||
8FAABF 8FAABF 8FABBF Í Í í
|
||||
8FAAC0 8FAAC0 8FABC0 Ì Ì ì
|
||||
8FAAC1 8FAAC1 8FABC1 Ï Ï ï
|
||||
8FAAC2 8FAAC2 8FABC2 Î Î î
|
||||
8FAAC3 8FAAC3 8FABC3 Ǐ Ǐ ǐ
|
||||
8FAAC4 8FAAC4 69 İ İ i
|
||||
8FAAC5 8FAAC5 8FABC5 Ī Ī ī
|
||||
8FAAC6 8FAAC6 8FABC6 Į Į į
|
||||
8FAAC7 8FAAC7 8FABC7 Ĩ Ĩ ĩ
|
||||
8FAAC8 8FAAC8 8FABC8 Ĵ Ĵ ĵ
|
||||
8FAAC9 8FAAC9 8FABC9 Ķ Ķ ķ
|
||||
8FAACA 8FAACA 8FABCA Ĺ Ĺ ĺ
|
||||
8FAACB 8FAACB 8FABCB Ľ Ľ ľ
|
||||
8FAACC 8FAACC 8FABCC Ļ Ļ ļ
|
||||
8FAACD 8FAACD 8FABCD Ń Ń ń
|
||||
8FAACE 8FAACE 8FABCE Ň Ň ň
|
||||
8FAACF 8FAACF 8FABCF Ņ Ņ ņ
|
||||
8FAAD0 8FAAD0 8FABD0 Ñ Ñ ñ
|
||||
8FAAD1 8FAAD1 8FABD1 Ó Ó ó
|
||||
8FAAD2 8FAAD2 8FABD2 Ò Ò ò
|
||||
8FAAD3 8FAAD3 8FABD3 Ö Ö ö
|
||||
8FAAD4 8FAAD4 8FABD4 Ô Ô ô
|
||||
8FAAD5 8FAAD5 8FABD5 Ǒ Ǒ ǒ
|
||||
8FAAD6 8FAAD6 8FABD6 Ő Ő ő
|
||||
8FAAD7 8FAAD7 8FABD7 Ō Ō ō
|
||||
8FAAD8 8FAAD8 8FABD8 Õ Õ õ
|
||||
8FAAD9 8FAAD9 8FABD9 Ŕ Ŕ ŕ
|
||||
8FAADA 8FAADA 8FABDA Ř Ř ř
|
||||
8FAADB 8FAADB 8FABDB Ŗ Ŗ ŗ
|
||||
8FAADC 8FAADC 8FABDC Ś Ś ś
|
||||
8FAADD 8FAADD 8FABDD Ŝ Ŝ ŝ
|
||||
8FAADE 8FAADE 8FABDE Š Š š
|
||||
8FAADF 8FAADF 8FABDF Ş Ş ş
|
||||
8FAAE0 8FAAE0 8FABE0 Ť Ť ť
|
||||
8FAAE1 8FAAE1 8FABE1 Ţ Ţ ţ
|
||||
8FAAE2 8FAAE2 8FABE2 Ú Ú ú
|
||||
8FAAE3 8FAAE3 8FABE3 Ù Ù ù
|
||||
8FAAE4 8FAAE4 8FABE4 Ü Ü ü
|
||||
8FAAE5 8FAAE5 8FABE5 Û Û û
|
||||
8FAAE6 8FAAE6 8FABE6 Ŭ Ŭ ŭ
|
||||
8FAAE7 8FAAE7 8FABE7 Ǔ Ǔ ǔ
|
||||
8FAAE8 8FAAE8 8FABE8 Ű Ű ű
|
||||
8FAAE9 8FAAE9 8FABE9 Ū Ū ū
|
||||
8FAAEA 8FAAEA 8FABEA Ų Ų ų
|
||||
8FAAEB 8FAAEB 8FABEB Ů Ů ů
|
||||
8FAAEC 8FAAEC 8FABEC Ũ Ũ ũ
|
||||
8FAAED 8FAAED 8FABED Ǘ Ǘ ǘ
|
||||
8FAAEE 8FAAEE 8FABEE Ǜ Ǜ ǜ
|
||||
8FAAEF 8FAAEF 8FABEF Ǚ Ǚ ǚ
|
||||
8FAAF0 8FAAF0 8FABF0 Ǖ Ǖ ǖ
|
||||
8FAAF1 8FAAF1 8FABF1 Ŵ Ŵ ŵ
|
||||
8FAAF2 8FAAF2 8FABF2 Ý Ý ý
|
||||
8FAAF3 8FAAF3 8FABF3 Ÿ Ÿ ÿ
|
||||
8FAAF4 8FAAF4 8FABF4 Ŷ Ŷ ŷ
|
||||
8FAAF5 8FAAF5 8FABF5 Ź Ź ź
|
||||
8FAAF6 8FAAF6 8FABF6 Ž Ž ž
|
||||
8FAAF7 8FAAF7 8FABF7 Ż Ż ż
|
||||
8FABA1 8FAAA1 8FABA1 á Á á
|
||||
8FABA2 8FAAA2 8FABA2 à À à
|
||||
8FABA3 8FAAA3 8FABA3 ä Ä ä
|
||||
8FABA4 8FAAA4 8FABA4 â Â â
|
||||
8FABA5 8FAAA5 8FABA5 ă Ă ă
|
||||
8FABA6 8FAAA6 8FABA6 ǎ Ǎ ǎ
|
||||
8FABA7 8FAAA7 8FABA7 ā Ā ā
|
||||
8FABA8 8FAAA8 8FABA8 ą Ą ą
|
||||
8FABA9 8FAAA9 8FABA9 å Å å
|
||||
8FABAA 8FAAAA 8FABAA ã Ã ã
|
||||
8FABAB 8FAAAB 8FABAB ć Ć ć
|
||||
8FABAC 8FAAAC 8FABAC ĉ Ĉ ĉ
|
||||
8FABAD 8FAAAD 8FABAD č Č č
|
||||
8FABAE 8FAAAE 8FABAE ç Ç ç
|
||||
8FABAF 8FAAAF 8FABAF ċ Ċ ċ
|
||||
8FABB0 8FAAB0 8FABB0 ď Ď ď
|
||||
8FABB1 8FAAB1 8FABB1 é É é
|
||||
8FABB2 8FAAB2 8FABB2 è È è
|
||||
8FABB3 8FAAB3 8FABB3 ë Ë ë
|
||||
8FABB4 8FAAB4 8FABB4 ê Ê ê
|
||||
8FABB5 8FAAB5 8FABB5 ě Ě ě
|
||||
8FABB6 8FAAB6 8FABB6 ė Ė ė
|
||||
8FABB7 8FAAB7 8FABB7 ē Ē ē
|
||||
8FABB8 8FAAB8 8FABB8 ę Ę ę
|
||||
8FABBA 8FAABA 8FABBA ĝ Ĝ ĝ
|
||||
8FABBB 8FAABB 8FABBB ğ Ğ ğ
|
||||
8FABBD 8FAABD 8FABBD ġ Ġ ġ
|
||||
8FABBE 8FAABE 8FABBE ĥ Ĥ ĥ
|
||||
8FABBF 8FAABF 8FABBF í Í í
|
||||
8FABC0 8FAAC0 8FABC0 ì Ì ì
|
||||
8FABC1 8FAAC1 8FABC1 ï Ï ï
|
||||
8FABC2 8FAAC2 8FABC2 î Î î
|
||||
8FABC3 8FAAC3 8FABC3 ǐ Ǐ ǐ
|
||||
8FABC5 8FAAC5 8FABC5 ī Ī ī
|
||||
8FABC6 8FAAC6 8FABC6 į Į į
|
||||
8FABC7 8FAAC7 8FABC7 ĩ Ĩ ĩ
|
||||
8FABC8 8FAAC8 8FABC8 ĵ Ĵ ĵ
|
||||
8FABC9 8FAAC9 8FABC9 ķ Ķ ķ
|
||||
8FABCA 8FAACA 8FABCA ĺ Ĺ ĺ
|
||||
8FABCB 8FAACB 8FABCB ľ Ľ ľ
|
||||
8FABCC 8FAACC 8FABCC ļ Ļ ļ
|
||||
8FABCD 8FAACD 8FABCD ń Ń ń
|
||||
8FABCE 8FAACE 8FABCE ň Ň ň
|
||||
8FABCF 8FAACF 8FABCF ņ Ņ ņ
|
||||
8FABD0 8FAAD0 8FABD0 ñ Ñ ñ
|
||||
8FABD1 8FAAD1 8FABD1 ó Ó ó
|
||||
8FABD2 8FAAD2 8FABD2 ò Ò ò
|
||||
8FABD3 8FAAD3 8FABD3 ö Ö ö
|
||||
8FABD4 8FAAD4 8FABD4 ô Ô ô
|
||||
8FABD5 8FAAD5 8FABD5 ǒ Ǒ ǒ
|
||||
8FABD6 8FAAD6 8FABD6 ő Ő ő
|
||||
8FABD7 8FAAD7 8FABD7 ō Ō ō
|
||||
8FABD8 8FAAD8 8FABD8 õ Õ õ
|
||||
8FABD9 8FAAD9 8FABD9 ŕ Ŕ ŕ
|
||||
8FABDA 8FAADA 8FABDA ř Ř ř
|
||||
8FABDB 8FAADB 8FABDB ŗ Ŗ ŗ
|
||||
8FABDC 8FAADC 8FABDC ś Ś ś
|
||||
8FABDD 8FAADD 8FABDD ŝ Ŝ ŝ
|
||||
8FABDE 8FAADE 8FABDE š Š š
|
||||
8FABDF 8FAADF 8FABDF ş Ş ş
|
||||
8FABE0 8FAAE0 8FABE0 ť Ť ť
|
||||
8FABE1 8FAAE1 8FABE1 ţ Ţ ţ
|
||||
8FABE2 8FAAE2 8FABE2 ú Ú ú
|
||||
8FABE3 8FAAE3 8FABE3 ù Ù ù
|
||||
8FABE4 8FAAE4 8FABE4 ü Ü ü
|
||||
8FABE5 8FAAE5 8FABE5 û Û û
|
||||
8FABE6 8FAAE6 8FABE6 ŭ Ŭ ŭ
|
||||
8FABE7 8FAAE7 8FABE7 ǔ Ǔ ǔ
|
||||
8FABE8 8FAAE8 8FABE8 ű Ű ű
|
||||
8FABE9 8FAAE9 8FABE9 ū Ū ū
|
||||
8FABEA 8FAAEA 8FABEA ų Ų ų
|
||||
8FABEB 8FAAEB 8FABEB ů Ů ů
|
||||
8FABEC 8FAAEC 8FABEC ũ Ũ ũ
|
||||
8FABED 8FAAED 8FABED ǘ Ǘ ǘ
|
||||
8FABEE 8FAAEE 8FABEE ǜ Ǜ ǜ
|
||||
8FABEF 8FAAEF 8FABEF ǚ Ǚ ǚ
|
||||
8FABF0 8FAAF0 8FABF0 ǖ Ǖ ǖ
|
||||
8FABF1 8FAAF1 8FABF1 ŵ Ŵ ŵ
|
||||
8FABF2 8FAAF2 8FABF2 ý Ý ý
|
||||
8FABF3 8FAAF3 8FABF3 ÿ Ÿ ÿ
|
||||
8FABF4 8FAAF4 8FABF4 ŷ Ŷ ŷ
|
||||
8FABF5 8FAAF5 8FABF5 ź Ź ź
|
||||
8FABF6 8FAAF6 8FABF6 ž Ž ž
|
||||
8FABF7 8FAAF7 8FABF7 ż Ż ż
|
||||
A2F2 A2F2 8FABA9 Å Å å
|
||||
A3C1 A3C1 A3E1 A A a
|
||||
A3C2 A3C2 A3E2 B B b
|
||||
A3C3 A3C3 A3E3 C C c
|
||||
A3C4 A3C4 A3E4 D D d
|
||||
A3C5 A3C5 A3E5 E E e
|
||||
A3C6 A3C6 A3E6 F F f
|
||||
A3C7 A3C7 A3E7 G G g
|
||||
A3C8 A3C8 A3E8 H H h
|
||||
A3C9 A3C9 A3E9 I I i
|
||||
A3CA A3CA A3EA J J j
|
||||
A3CB A3CB A3EB K K k
|
||||
A3CC A3CC A3EC L L l
|
||||
A3CD A3CD A3ED M M m
|
||||
A3CE A3CE A3EE N N n
|
||||
A3CF A3CF A3EF O O o
|
||||
A3D0 A3D0 A3F0 P P p
|
||||
A3D1 A3D1 A3F1 Q Q q
|
||||
A3D2 A3D2 A3F2 R R r
|
||||
A3D3 A3D3 A3F3 S S s
|
||||
A3D4 A3D4 A3F4 T T t
|
||||
A3D5 A3D5 A3F5 U U u
|
||||
A3D6 A3D6 A3F6 V V v
|
||||
A3D7 A3D7 A3F7 W W w
|
||||
A3D8 A3D8 A3F8 X X x
|
||||
A3D9 A3D9 A3F9 Y Y y
|
||||
A3DA A3DA A3FA Z Z z
|
||||
A3E1 A3C1 A3E1 a A a
|
||||
A3E2 A3C2 A3E2 b B b
|
||||
A3E3 A3C3 A3E3 c C c
|
||||
A3E4 A3C4 A3E4 d D d
|
||||
A3E5 A3C5 A3E5 e E e
|
||||
A3E6 A3C6 A3E6 f F f
|
||||
A3E7 A3C7 A3E7 g G g
|
||||
A3E8 A3C8 A3E8 h H h
|
||||
A3E9 A3C9 A3E9 i I i
|
||||
A3EA A3CA A3EA j J j
|
||||
A3EB A3CB A3EB k K k
|
||||
A3EC A3CC A3EC l L l
|
||||
A3ED A3CD A3ED m M m
|
||||
A3EE A3CE A3EE n N n
|
||||
A3EF A3CF A3EF o O o
|
||||
A3F0 A3D0 A3F0 p P p
|
||||
A3F1 A3D1 A3F1 q Q q
|
||||
A3F2 A3D2 A3F2 r R r
|
||||
A3F3 A3D3 A3F3 s S s
|
||||
A3F4 A3D4 A3F4 t T t
|
||||
A3F5 A3D5 A3F5 u U u
|
||||
A3F6 A3D6 A3F6 v V v
|
||||
A3F7 A3D7 A3F7 w W w
|
||||
A3F8 A3D8 A3F8 x X x
|
||||
A3F9 A3D9 A3F9 y Y y
|
||||
A3FA A3DA A3FA z Z z
|
||||
A6A1 A6A1 A6C1 Α Α α
|
||||
A6A2 A6A2 A6C2 Β Β β
|
||||
A6A3 A6A3 A6C3 Γ Γ γ
|
||||
A6A4 A6A4 A6C4 Δ Δ δ
|
||||
A6A5 A6A5 A6C5 Ε Ε ε
|
||||
A6A6 A6A6 A6C6 Ζ Ζ ζ
|
||||
A6A7 A6A7 A6C7 Η Η η
|
||||
A6A8 A6A8 A6C8 Θ Θ θ
|
||||
A6A9 A6A9 A6C9 Ι Ι ι
|
||||
A6AA A6AA A6CA Κ Κ κ
|
||||
A6AB A6AB A6CB Λ Λ λ
|
||||
A6AC A6AC A6CC Μ Μ μ
|
||||
A6AD A6AD A6CD Ν Ν ν
|
||||
A6AE A6AE A6CE Ξ Ξ ξ
|
||||
A6AF A6AF A6CF Ο Ο ο
|
||||
A6B0 A6B0 A6D0 Π Π π
|
||||
A6B1 A6B1 A6D1 Ρ Ρ ρ
|
||||
A6B2 A6B2 A6D2 Σ Σ σ
|
||||
A6B3 A6B3 A6D3 Τ Τ τ
|
||||
A6B4 A6B4 A6D4 Υ Υ υ
|
||||
A6B5 A6B5 A6D5 Φ Φ φ
|
||||
A6B6 A6B6 A6D6 Χ Χ χ
|
||||
A6B7 A6B7 A6D7 Ψ Ψ ψ
|
||||
A6B8 A6B8 A6D8 Ω Ω ω
|
||||
A6C1 A6A1 A6C1 α Α α
|
||||
A6C2 A6A2 A6C2 β Β β
|
||||
A6C3 A6A3 A6C3 γ Γ γ
|
||||
A6C4 A6A4 A6C4 δ Δ δ
|
||||
A6C5 A6A5 A6C5 ε Ε ε
|
||||
A6C6 A6A6 A6C6 ζ Ζ ζ
|
||||
A6C7 A6A7 A6C7 η Η η
|
||||
A6C8 A6A8 A6C8 θ Θ θ
|
||||
A6C9 A6A9 A6C9 ι Ι ι
|
||||
A6CA A6AA A6CA κ Κ κ
|
||||
A6CB A6AB A6CB λ Λ λ
|
||||
A6CC A6AC A6CC μ Μ μ
|
||||
A6CD A6AD A6CD ν Ν ν
|
||||
A6CE A6AE A6CE ξ Ξ ξ
|
||||
A6CF A6AF A6CF ο Ο ο
|
||||
A6D0 A6B0 A6D0 π Π π
|
||||
A6D1 A6B1 A6D1 ρ Ρ ρ
|
||||
A6D2 A6B2 A6D2 σ Σ σ
|
||||
A6D3 A6B3 A6D3 τ Τ τ
|
||||
A6D4 A6B4 A6D4 υ Υ υ
|
||||
A6D5 A6B5 A6D5 φ Φ φ
|
||||
A6D6 A6B6 A6D6 χ Χ χ
|
||||
A6D7 A6B7 A6D7 ψ Ψ ψ
|
||||
A6D8 A6B8 A6D8 ω Ω ω
|
||||
A7A1 A7A1 A7D1 А А а
|
||||
A7A2 A7A2 A7D2 Б Б б
|
||||
A7A3 A7A3 A7D3 В В в
|
||||
A7A4 A7A4 A7D4 Г Г г
|
||||
A7A5 A7A5 A7D5 Д Д д
|
||||
A7A6 A7A6 A7D6 Е Е е
|
||||
A7A7 A7A7 A7D7 Ё Ё ё
|
||||
A7A8 A7A8 A7D8 Ж Ж ж
|
||||
A7A9 A7A9 A7D9 З З з
|
||||
A7AA A7AA A7DA И И и
|
||||
A7AB A7AB A7DB Й Й й
|
||||
A7AC A7AC A7DC К К к
|
||||
A7AD A7AD A7DD Л Л л
|
||||
A7AE A7AE A7DE М М м
|
||||
A7AF A7AF A7DF Н Н н
|
||||
A7B0 A7B0 A7E0 О О о
|
||||
A7B1 A7B1 A7E1 П П п
|
||||
A7B2 A7B2 A7E2 Р Р р
|
||||
A7B3 A7B3 A7E3 С С с
|
||||
A7B4 A7B4 A7E4 Т Т т
|
||||
A7B5 A7B5 A7E5 У У у
|
||||
A7B6 A7B6 A7E6 Ф Ф ф
|
||||
A7B7 A7B7 A7E7 Х Х х
|
||||
A7B8 A7B8 A7E8 Ц Ц ц
|
||||
A7B9 A7B9 A7E9 Ч Ч ч
|
||||
A7BA A7BA A7EA Ш Ш ш
|
||||
A7BB A7BB A7EB Щ Щ щ
|
||||
A7BC A7BC A7EC Ъ Ъ ъ
|
||||
A7BD A7BD A7ED Ы Ы ы
|
||||
A7BE A7BE A7EE Ь Ь ь
|
||||
A7BF A7BF A7EF Э Э э
|
||||
A7C0 A7C0 A7F0 Ю Ю ю
|
||||
A7C1 A7C1 A7F1 Я Я я
|
||||
A7D1 A7A1 A7D1 а А а
|
||||
A7D2 A7A2 A7D2 б Б б
|
||||
A7D3 A7A3 A7D3 в В в
|
||||
A7D4 A7A4 A7D4 г Г г
|
||||
A7D5 A7A5 A7D5 д Д д
|
||||
A7D6 A7A6 A7D6 е Е е
|
||||
A7D7 A7A7 A7D7 ё Ё ё
|
||||
A7D8 A7A8 A7D8 ж Ж ж
|
||||
A7D9 A7A9 A7D9 з З з
|
||||
A7DA A7AA A7DA и И и
|
||||
A7DB A7AB A7DB й Й й
|
||||
A7DC A7AC A7DC к К к
|
||||
A7DD A7AD A7DD л Л л
|
||||
A7DE A7AE A7DE м М м
|
||||
A7DF A7AF A7DF н Н н
|
||||
A7E0 A7B0 A7E0 о О о
|
||||
A7E1 A7B1 A7E1 п П п
|
||||
A7E2 A7B2 A7E2 р Р р
|
||||
A7E3 A7B3 A7E3 с С с
|
||||
A7E4 A7B4 A7E4 т Т т
|
||||
A7E5 A7B5 A7E5 у У у
|
||||
A7E6 A7B6 A7E6 ф Ф ф
|
||||
A7E7 A7B7 A7E7 х Х х
|
||||
A7E8 A7B8 A7E8 ц Ц ц
|
||||
A7E9 A7B9 A7E9 ч Ч ч
|
||||
A7EA A7BA A7EA ш Ш ш
|
||||
A7EB A7BB A7EB щ Щ щ
|
||||
A7EC A7BC A7EC ъ Ъ ъ
|
||||
A7ED A7BD A7ED ы Ы ы
|
||||
A7EE A7BE A7EE ь Ь ь
|
||||
A7EF A7BF A7EF э Э э
|
||||
A7F0 A7C0 A7F0 ю Ю ю
|
||||
A7F1 A7C1 A7F1 я Я я
|
||||
SELECT * FROM t1
|
||||
WHERE HEX(CAST(LOWER(a) AS CHAR CHARACTER SET utf8)) <>
|
||||
HEX(LOWER(CAST(a AS CHAR CHARACTER SET utf8))) ORDER BY code;
|
||||
code a
|
||||
8FAABC Ģ
|
||||
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
|
||||
8FA9C3 ð
|
||||
8FABB9 ǵ
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# End of 5.5 tests
|
||||
#
|
||||
|
@ -50,6 +50,7 @@ information_schema
|
||||
mtr
|
||||
mysql
|
||||
mysqltest
|
||||
performance_schema
|
||||
test
|
||||
flush tables with read lock;
|
||||
drop database mysqltest;
|
||||
@ -61,6 +62,7 @@ Database
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
performance_schema
|
||||
test
|
||||
drop database mysqltest;
|
||||
ERROR HY000: Can't drop database 'mysqltest'; database doesn't exist
|
||||
|
@ -1,2 +0,0 @@
|
||||
Variable_name Value
|
||||
have_dynamic_loading YES
|
@ -1,2 +0,0 @@
|
||||
have_example_plugin
|
||||
1
|
@ -1,2 +0,0 @@
|
||||
have_simple_parser
|
||||
1
|
@ -1,2 +0,0 @@
|
||||
have_udf_example_lib
|
||||
1
|
@ -11,12 +11,14 @@ select * from information_schema.SCHEMATA where schema_name > 'm';
|
||||
CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
|
||||
def mtr latin1 latin1_swedish_ci NULL
|
||||
def mysql latin1 latin1_swedish_ci NULL
|
||||
def performance_schema utf8 utf8_general_ci NULL
|
||||
def test latin1 latin1_swedish_ci NULL
|
||||
select schema_name from information_schema.schemata;
|
||||
schema_name
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
performance_schema
|
||||
test
|
||||
show databases like 't%';
|
||||
Database (t%)
|
||||
@ -26,6 +28,7 @@ Database
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
performance_schema
|
||||
test
|
||||
show databases where `database` = 't%';
|
||||
Database
|
||||
@ -364,6 +367,7 @@ c
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
performance_schema
|
||||
test
|
||||
explain select * from v0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
@ -604,7 +604,7 @@ a b
|
||||
4 4
|
||||
show master status /* there must be the UPDATE query event */;
|
||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||
master-bin.000001 207
|
||||
master-bin.000001 344
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
insert into t1 values (1,2),(3,4),(4,4);
|
||||
@ -614,7 +614,7 @@ UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a;
|
||||
ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
|
||||
show master status /* there must be the UPDATE query event */;
|
||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||
master-bin.000001 222
|
||||
master-bin.000001 359
|
||||
drop table t1, t2;
|
||||
set @@session.binlog_format= @sav_binlog_format;
|
||||
drop table if exists t1, t2, t3;
|
||||
|
@ -37,24 +37,60 @@ SET TIMESTAMP=1000000000/*!*/;
|
||||
create table t2 (id int auto_increment not null primary key)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 values ("abirvalg")
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t2 values ()
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
@ -64,7 +100,6 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
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/*!*/;
|
||||
@ -74,8 +109,24 @@ 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/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 values ("Alas")
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
@ -86,17 +137,6 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
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/*!*/;
|
||||
@ -106,8 +146,69 @@ 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/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
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/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
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/*!*/;
|
||||
SET @@session.lc_time_names=0/*!*/;
|
||||
SET @@session.collation_database=DEFAULT/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 values ("Alas")
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
@ -137,24 +238,60 @@ SET TIMESTAMP=1000000000/*!*/;
|
||||
create table t2 (id int auto_increment not null primary key)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 values ("abirvalg")
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t2 values ()
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
@ -164,7 +301,6 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
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/*!*/;
|
||||
@ -174,8 +310,24 @@ 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/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (word)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 values ("Alas")
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
@ -186,17 +338,6 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
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/*!*/;
|
||||
@ -206,8 +347,69 @@ 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/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
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/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
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/*!*/;
|
||||
SET @@session.lc_time_names=0/*!*/;
|
||||
SET @@session.collation_database=DEFAULT/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
insert into t1 values ("Alas")
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
@ -359,31 +561,73 @@ SET @@session.collation_database=DEFAULT/*!*/;
|
||||
create table t1 (a varchar(64) character set utf8)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (a)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.collation_database=7/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (a)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.collation_database=DEFAULT/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (a)
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (a)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-#-#' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (a)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.collation_database=7/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-a-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (a)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.collation_database=DEFAULT/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-b-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (a)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
LOAD DATA LOCAL INFILE 'MYSQLTEST_VARDIR/tmp/SQL_LOAD_MB-c-0' INTO TABLE `t1` CHARACTER SET koi8r FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (a)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
drop table t1
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -399,9 +643,9 @@ We expect this value to be 1
|
||||
The bug being tested was that 'Query' lines were not preceded by '#'
|
||||
If the line is in the table, it had to have been preceded by a '#'
|
||||
|
||||
SELECT COUNT(*) AS `BUG#28293_expect_1` FROM patch WHERE a LIKE '%Query%';
|
||||
BUG#28293_expect_1
|
||||
1
|
||||
SELECT COUNT(*) AS `BUG#28293_expect_3` FROM patch WHERE a LIKE '%Query%';
|
||||
BUG#28293_expect_3
|
||||
3
|
||||
DROP TABLE patch;
|
||||
FLUSH LOGS;
|
||||
CREATE TABLE t1(a INT);
|
||||
@ -426,7 +670,7 @@ CREATE TABLE t1 (a INT, b CHAR(64));
|
||||
flush logs;
|
||||
INSERT INTO t1 VALUES (1,USER());
|
||||
flush logs;
|
||||
mysqlbinlog var/log/master-bin.000017 > var/tmp/bug31611.sql
|
||||
mysqlbinlog var/log/master-bin.000018 > var/tmp/bug31611.sql
|
||||
mysql mysqltest1 -uuntrusted < var/tmp/bug31611.sql
|
||||
INSERT INTO t1 VALUES (1,USER());
|
||||
ERROR 42000: INSERT command denied to user 'untrusted'@'localhost' for table 't1'
|
||||
@ -452,7 +696,7 @@ an_int 1000
|
||||
a_decimal 907.79
|
||||
a_string Just a test
|
||||
DROP TABLE t1;
|
||||
>> mysqlbinlog var/log/master-bin.000019 > var/tmp/bug32580.sql
|
||||
>> mysqlbinlog var/log/master-bin.000020 > var/tmp/bug32580.sql
|
||||
>> mysql test < var/tmp/bug32580.sql
|
||||
SELECT * FROM t1;
|
||||
a_real 158.883
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2365,7 +2365,7 @@ BEGIN
|
||||
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=b'00000000' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -2458,7 +2458,7 @@ BEGIN
|
||||
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=b'00000001' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -2553,7 +2553,7 @@ BEGIN
|
||||
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=NULL /* type=16 meta=256 nullable=1 is_null=1 */
|
||||
### @1=NULL /* type=16 meta=1 nullable=1 is_null=1 */
|
||||
### @2=NULL /* type=16 meta=2048 nullable=1 is_null=1 */
|
||||
### @3=NULL /* type=1 meta=0 nullable=1 is_null=1 */
|
||||
### @4=NULL /* type=1 meta=0 nullable=1 is_null=1 */
|
||||
@ -2580,7 +2580,7 @@ BEGIN
|
||||
### @25=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @26=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @27=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=10 meta=0 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=14 meta=0 nullable=1 is_null=1 */
|
||||
### @29=NULL /* type=12 meta=0 nullable=1 is_null=1 */
|
||||
### @30=1000000000 /* TIMESTAMP meta=0 nullable=0 is_null=0 */
|
||||
### @31=NULL /* TIMESTAMP meta=0 nullable=1 is_null=1 */
|
||||
@ -2634,7 +2634,7 @@ BEGIN
|
||||
### @79=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=b'00000001' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -2727,7 +2727,7 @@ BEGIN
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=b'00000000' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -2807,7 +2807,7 @@ BEGIN
|
||||
### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=b'00000001' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -2900,7 +2900,7 @@ BEGIN
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=b'00000001' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -2980,7 +2980,7 @@ BEGIN
|
||||
### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=b'00000000' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -3073,7 +3073,7 @@ BEGIN
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=NULL /* type=16 meta=256 nullable=1 is_null=1 */
|
||||
### @1=NULL /* type=16 meta=1 nullable=1 is_null=1 */
|
||||
### @2=NULL /* type=16 meta=2048 nullable=1 is_null=1 */
|
||||
### @3=NULL /* type=1 meta=0 nullable=1 is_null=1 */
|
||||
### @4=NULL /* type=1 meta=0 nullable=1 is_null=1 */
|
||||
@ -3100,7 +3100,7 @@ BEGIN
|
||||
### @25=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @26=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @27=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=10 meta=0 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=14 meta=0 nullable=1 is_null=1 */
|
||||
### @29=NULL /* type=12 meta=0 nullable=1 is_null=1 */
|
||||
### @30=1000000000 /* TIMESTAMP meta=0 nullable=0 is_null=0 */
|
||||
### @31=NULL /* TIMESTAMP meta=0 nullable=1 is_null=1 */
|
||||
@ -3153,7 +3153,7 @@ BEGIN
|
||||
### @78=NULL /* TIMESTAMP meta=63489 nullable=1 is_null=1 */
|
||||
### @79=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=b'00000001' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -3246,7 +3246,7 @@ BEGIN
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=b'00000001' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -3326,7 +3326,7 @@ BEGIN
|
||||
### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=4 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=NULL /* type=16 meta=256 nullable=1 is_null=1 */
|
||||
### @1=NULL /* type=16 meta=1 nullable=1 is_null=1 */
|
||||
### @2=NULL /* type=16 meta=2048 nullable=1 is_null=1 */
|
||||
### @3=NULL /* type=1 meta=0 nullable=1 is_null=1 */
|
||||
### @4=NULL /* type=1 meta=0 nullable=1 is_null=1 */
|
||||
@ -3353,7 +3353,7 @@ BEGIN
|
||||
### @25=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @26=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @27=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=10 meta=0 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=14 meta=0 nullable=1 is_null=1 */
|
||||
### @29=NULL /* type=12 meta=0 nullable=1 is_null=1 */
|
||||
### @30=1000000000 /* TIMESTAMP meta=0 nullable=0 is_null=0 */
|
||||
### @31=NULL /* TIMESTAMP meta=0 nullable=1 is_null=1 */
|
||||
@ -3419,7 +3419,7 @@ BEGIN
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
### DELETE FROM test.t1
|
||||
### WHERE
|
||||
### @1=b'00000001' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=-1 (255) /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -3512,7 +3512,7 @@ BEGIN
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
### DELETE FROM test.t1
|
||||
### WHERE
|
||||
### @1=b'00000000' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'0' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'0000000000000000000000000000000000000000000000000000000000000000' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=-128 (128) /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -3605,7 +3605,7 @@ BEGIN
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
### DELETE FROM test.t1
|
||||
### WHERE
|
||||
### @1=b'00000001' /* BIT(8) meta=256 nullable=1 is_null=0 */
|
||||
### @1=b'1' /* BIT(1) meta=1 nullable=1 is_null=0 */
|
||||
### @2=b'1111111111111111111111111111111111111111111111111111111111111111' /* BIT(64) meta=2048 nullable=1 is_null=0 */
|
||||
### @3=127 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
### @4=0 /* TINYINT meta=0 nullable=1 is_null=0 */
|
||||
@ -3698,7 +3698,7 @@ BEGIN
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
### DELETE FROM test.t1
|
||||
### WHERE
|
||||
### @1=NULL /* type=16 meta=256 nullable=1 is_null=1 */
|
||||
### @1=NULL /* type=16 meta=1 nullable=1 is_null=1 */
|
||||
### @2=NULL /* type=16 meta=2048 nullable=1 is_null=1 */
|
||||
### @3=NULL /* type=1 meta=0 nullable=1 is_null=1 */
|
||||
### @4=NULL /* type=1 meta=0 nullable=1 is_null=1 */
|
||||
@ -3725,7 +3725,7 @@ BEGIN
|
||||
### @25=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @26=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @27=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=10 meta=0 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=14 meta=0 nullable=1 is_null=1 */
|
||||
### @29=NULL /* type=12 meta=0 nullable=1 is_null=1 */
|
||||
### @30=1000000000 /* TIMESTAMP meta=0 nullable=0 is_null=0 */
|
||||
### @31=NULL /* TIMESTAMP meta=0 nullable=1 is_null=1 */
|
||||
|
@ -2584,7 +2584,7 @@ BEGIN
|
||||
### @25=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @26=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @27=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=10 meta=0 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=14 meta=0 nullable=1 is_null=1 */
|
||||
### @29=NULL /* type=12 meta=0 nullable=1 is_null=1 */
|
||||
### @30=1000000000 /* TIMESTAMP meta=0 nullable=0 is_null=0 */
|
||||
### @31=NULL /* TIMESTAMP meta=0 nullable=1 is_null=1 */
|
||||
@ -3110,7 +3110,7 @@ BEGIN
|
||||
### @25=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @26=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @27=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=10 meta=0 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=14 meta=0 nullable=1 is_null=1 */
|
||||
### @29=NULL /* type=12 meta=0 nullable=1 is_null=1 */
|
||||
### @30=1000000000 /* TIMESTAMP meta=0 nullable=0 is_null=0 */
|
||||
### @31=NULL /* TIMESTAMP meta=0 nullable=1 is_null=1 */
|
||||
@ -3365,7 +3365,7 @@ BEGIN
|
||||
### @25=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @26=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @27=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=10 meta=0 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=14 meta=0 nullable=1 is_null=1 */
|
||||
### @29=NULL /* type=12 meta=0 nullable=1 is_null=1 */
|
||||
### @30=1000000000 /* TIMESTAMP meta=0 nullable=0 is_null=0 */
|
||||
### @31=NULL /* TIMESTAMP meta=0 nullable=1 is_null=1 */
|
||||
@ -3745,7 +3745,7 @@ BEGIN
|
||||
### @25=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @26=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @27=NULL /* type=246 meta=2560 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=10 meta=0 nullable=1 is_null=1 */
|
||||
### @28=NULL /* type=14 meta=0 nullable=1 is_null=1 */
|
||||
### @29=NULL /* type=12 meta=0 nullable=1 is_null=1 */
|
||||
### @30=1000000000 /* TIMESTAMP meta=0 nullable=0 is_null=0 */
|
||||
### @31=NULL /* TIMESTAMP meta=0 nullable=1 is_null=1 */
|
||||
|
@ -215,7 +215,7 @@ COMMIT/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
TRUNCATE TABLE t1
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
@ -223,21 +223,84 @@ SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t1
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Xid = #
|
||||
COMMIT/*!*/;
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=11 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=13 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t1
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Xid = #
|
||||
COMMIT/*!*/;
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
### DELETE FROM test.t2
|
||||
### WHERE
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -293,71 +356,14 @@ BEGIN
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t2
|
||||
### SET
|
||||
### @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 # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=11 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t2
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @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 # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
### DELETE FROM test.t2
|
||||
### WHERE
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Xid = #
|
||||
COMMIT/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t1
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Xid = #
|
||||
COMMIT/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t2
|
||||
@ -369,55 +375,6 @@ BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t1` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### INSERT INTO test.t1
|
||||
### SET
|
||||
### @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 # Table_map: `test`.`t1` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=11 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-1' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### UPDATE test.t1
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### SET
|
||||
### @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 # Table_map: `test`.`t1` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
### DELETE FROM test.t1
|
||||
### WHERE
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Write_rows: table id # flags: STMT_END_F
|
||||
### INSERT INTO test.t2
|
||||
@ -433,6 +390,16 @@ BEGIN
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Update_rows: table id # flags: STMT_END_F
|
||||
@ -458,6 +425,16 @@ BEGIN
|
||||
### @1=13 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Table_map: `test`.`t2` mapped to number #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Delete_rows: table id # flags: STMT_END_F
|
||||
@ -468,12 +445,7 @@ BEGIN
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
ROLLBACK
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
BEGIN
|
||||
COMMIT
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
@ -481,9 +453,6 @@ SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t1
|
||||
/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Xid = #
|
||||
COMMIT/*!*/;
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
TRUNCATE TABLE t2
|
||||
|
@ -419,6 +419,38 @@ The following options may be given as the first argument:
|
||||
default}
|
||||
--partition[=name] Enable or disable partition plugin. Possible values are
|
||||
ON, OFF, FORCE (don't start if the plugin fails to load).
|
||||
--performance-schema
|
||||
Enable the performance schema.
|
||||
--performance-schema-events-waits-history-long-size=#
|
||||
Number of rows in EVENTS_WAITS_HISTORY_LONG.
|
||||
--performance-schema-events-waits-history-size=#
|
||||
Number of rows per thread in EVENTS_WAITS_HISTORY.
|
||||
--performance-schema-max-cond-classes=#
|
||||
Maximum number of condition instruments.
|
||||
--performance-schema-max-cond-instances=#
|
||||
Maximum number of instrumented condition objects.
|
||||
--performance-schema-max-file-classes=#
|
||||
Maximum number of file instruments.
|
||||
--performance-schema-max-file-handles=#
|
||||
Maximum number of opened instrumented files.
|
||||
--performance-schema-max-file-instances=#
|
||||
Maximum number of instrumented files.
|
||||
--performance-schema-max-mutex-classes=#
|
||||
Maximum number of mutex instruments.
|
||||
--performance-schema-max-mutex-instances=#
|
||||
Maximum number of instrumented MUTEX objects.
|
||||
--performance-schema-max-rwlock-classes=#
|
||||
Maximum number of rwlock instruments.
|
||||
--performance-schema-max-rwlock-instances=#
|
||||
Maximum number of instrumented RWLOCK objects.
|
||||
--performance-schema-max-table-handles=#
|
||||
Maximum number of opened instrumented tables.
|
||||
--performance-schema-max-table-instances=#
|
||||
Maximum number of instrumented tables.
|
||||
--performance-schema-max-thread-classes=#
|
||||
Maximum number of thread instruments.
|
||||
--performance-schema-max-thread-instances=#
|
||||
Maximum number of instrumented threads.
|
||||
--pid-file=name Pid file used by safe_mysqld
|
||||
--plugin-dir=name Directory for plugins
|
||||
--plugin-load=name Optional semicolon-separated list of plugins to load,
|
||||
@ -621,6 +653,12 @@ The following options may be given as the first argument:
|
||||
Number of times the slave SQL thread will retry a
|
||||
transaction in case it failed with a deadlock or elapsed
|
||||
lock wait timeout, before giving up and stopping
|
||||
--slave-type-conversions=name
|
||||
Set of slave type conversions that are enabled. Legal
|
||||
values are: ALL_LOSSY to enable lossy conversions and
|
||||
ALL_NON_LOSSY to enable non-lossy conversions. If the
|
||||
variable is assigned the empty set, no conversions are
|
||||
allowed and it is expected that the types match exactly.
|
||||
--slow-launch-time=#
|
||||
If creating the thread takes longer than this value (in
|
||||
seconds), the Slow_launch_threads counter will be
|
||||
@ -718,220 +756,237 @@ The following options may be given as the first argument:
|
||||
-W, --warnings[=#] Deprecated; use --log-warnings instead.
|
||||
|
||||
Variables (--variable-name=value)
|
||||
and boolean options {FALSE|TRUE} Value (after reading options)
|
||||
----------------------------------- --------------------------------------
|
||||
abort-slave-event-count 0
|
||||
allow-suspicious-udfs FALSE
|
||||
archive ON
|
||||
auto-increment-increment 1
|
||||
auto-increment-offset 1
|
||||
automatic-sp-privileges TRUE
|
||||
back-log 50
|
||||
big-tables FALSE
|
||||
bind-address (No default value)
|
||||
binlog-cache-size 32768
|
||||
binlog-format STATEMENT
|
||||
binlog-row-event-max-size 1024
|
||||
blackhole ON
|
||||
bulk-insert-buffer-size 8388608
|
||||
character-set-client-handshake TRUE
|
||||
character-set-filesystem binary
|
||||
character-set-server latin1
|
||||
character-sets-dir MYSQL_SHAREDIR/charsets/
|
||||
chroot (No default value)
|
||||
collation-server latin1_swedish_ci
|
||||
completion-type NO_CHAIN
|
||||
concurrent-insert AUTO
|
||||
connect-timeout 10
|
||||
console FALSE
|
||||
date-format %Y-%m-%d
|
||||
datetime-format %Y-%m-%d %H:%i:%s
|
||||
default-character-set latin1
|
||||
default-collation latin1_swedish_ci
|
||||
default-storage-engine MyISAM
|
||||
default-time-zone (No default value)
|
||||
default-week-format 0
|
||||
delay-key-write ON
|
||||
delayed-insert-limit 100
|
||||
delayed-insert-timeout 300
|
||||
delayed-queue-size 1000
|
||||
disconnect-slave-event-count 0
|
||||
div-precision-increment 4
|
||||
enable-locking FALSE
|
||||
engine-condition-pushdown TRUE
|
||||
event-scheduler OFF
|
||||
expire-logs-days 0
|
||||
external-locking FALSE
|
||||
federated ON
|
||||
flush FALSE
|
||||
flush-time 0
|
||||
ft-boolean-syntax + -><()~*:""&|
|
||||
ft-max-word-len 84
|
||||
ft-min-word-len 4
|
||||
ft-query-expansion-limit 20
|
||||
ft-stopword-file (No default value)
|
||||
gdb FALSE
|
||||
general-log FALSE
|
||||
group-concat-max-len 1024
|
||||
help TRUE
|
||||
ignore-builtin-innodb FALSE
|
||||
init-connect
|
||||
init-file (No default value)
|
||||
init-rpl-role MASTER
|
||||
init-slave
|
||||
interactive-timeout 28800
|
||||
join-buffer-size 131072
|
||||
keep-files-on-create FALSE
|
||||
key-buffer-size 8388608
|
||||
key-cache-age-threshold 300
|
||||
key-cache-block-size 1024
|
||||
key-cache-division-limit 100
|
||||
language MYSQL_SHAREDIR/
|
||||
large-pages FALSE
|
||||
lc-messages en_US
|
||||
lc-messages-dir MYSQL_SHAREDIR/
|
||||
lc-time-names en_US
|
||||
local-infile TRUE
|
||||
log-bin (No default value)
|
||||
log-bin-index (No default value)
|
||||
log-bin-trust-function-creators FALSE
|
||||
log-error
|
||||
log-isam myisam.log
|
||||
log-output FILE
|
||||
log-queries-not-using-indexes FALSE
|
||||
log-short-format FALSE
|
||||
log-slave-updates FALSE
|
||||
log-slow-admin-statements FALSE
|
||||
log-slow-slave-statements FALSE
|
||||
log-tc tc.log
|
||||
log-tc-size 24576
|
||||
log-update (No default value)
|
||||
log-warnings 1
|
||||
long-query-time 10
|
||||
low-priority-updates FALSE
|
||||
lower-case-table-names 1
|
||||
master-info-file master.info
|
||||
master-retry-count 86400
|
||||
max-allowed-packet 1048576
|
||||
max-binlog-cache-size 18446744073709547520
|
||||
max-binlog-dump-events 0
|
||||
max-binlog-size 1073741824
|
||||
max-connect-errors 10
|
||||
max-connections 151
|
||||
max-delayed-threads 20
|
||||
max-error-count 64
|
||||
max-heap-table-size 16777216
|
||||
max-join-size 18446744073709551615
|
||||
max-length-for-sort-data 1024
|
||||
max-prepared-stmt-count 16382
|
||||
max-relay-log-size 0
|
||||
max-seeks-for-key 18446744073709551615
|
||||
max-sort-length 1024
|
||||
max-sp-recursion-depth 0
|
||||
max-tmp-tables 32
|
||||
max-user-connections 0
|
||||
max-write-lock-count 18446744073709551615
|
||||
memlock FALSE
|
||||
min-examined-row-limit 0
|
||||
multi-range-count 256
|
||||
myisam-block-size 1024
|
||||
myisam-data-pointer-size 6
|
||||
myisam-max-sort-file-size 9223372036853727232
|
||||
myisam-mmap-size 18446744073709551615
|
||||
myisam-recover-options OFF
|
||||
myisam-repair-threads 1
|
||||
myisam-sort-buffer-size 8388608
|
||||
myisam-stats-method nulls_unequal
|
||||
myisam-use-mmap FALSE
|
||||
net-buffer-length 16384
|
||||
net-read-timeout 30
|
||||
net-retry-count 10
|
||||
net-write-timeout 60
|
||||
new FALSE
|
||||
old FALSE
|
||||
old-alter-table FALSE
|
||||
old-passwords FALSE
|
||||
old-style-user-limits FALSE
|
||||
optimizer-prune-level 1
|
||||
optimizer-search-depth 62
|
||||
optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on
|
||||
partition ON
|
||||
plugin-dir MYSQL_LIBDIR/mysql/plugin
|
||||
plugin-load (No default value)
|
||||
port 3306
|
||||
port-open-timeout 0
|
||||
preload-buffer-size 32768
|
||||
profiling-history-size 15
|
||||
query-alloc-block-size 8192
|
||||
query-cache-limit 1048576
|
||||
query-cache-min-res-unit 4096
|
||||
query-cache-size 0
|
||||
query-cache-type ON
|
||||
query-cache-wlock-invalidate FALSE
|
||||
query-prealloc-size 8192
|
||||
range-alloc-block-size 4096
|
||||
read-buffer-size 131072
|
||||
read-only FALSE
|
||||
read-rnd-buffer-size 262144
|
||||
record-buffer 131072
|
||||
relay-log (No default value)
|
||||
relay-log-index (No default value)
|
||||
relay-log-info-file relay-log.info
|
||||
relay-log-purge TRUE
|
||||
relay-log-recovery FALSE
|
||||
relay-log-space-limit 0
|
||||
replicate-same-server-id FALSE
|
||||
report-host (No default value)
|
||||
report-password (No default value)
|
||||
report-port 3306
|
||||
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
|
||||
skip-networking FALSE
|
||||
skip-show-database FALSE
|
||||
skip-slave-start FALSE
|
||||
slave-compressed-protocol FALSE
|
||||
slave-exec-mode STRICT
|
||||
slave-net-timeout 3600
|
||||
slave-skip-errors (No default value)
|
||||
slave-transaction-retries 10
|
||||
slow-launch-time 2
|
||||
slow-query-log FALSE
|
||||
socket /tmp/mysql.sock
|
||||
sort-buffer-size 2097152
|
||||
sporadic-binlog-dump-fail FALSE
|
||||
sql-mode
|
||||
symbolic-links FALSE
|
||||
sync-binlog 0
|
||||
sync-frm TRUE
|
||||
sync-master-info 0
|
||||
sync-relay-log 0
|
||||
sync-relay-log-info 0
|
||||
sysdate-is-now FALSE
|
||||
table-cache 400
|
||||
table-definition-cache 400
|
||||
table-lock-wait-timeout 50
|
||||
table-open-cache 400
|
||||
tc-heuristic-recover COMMIT
|
||||
thread-cache-size 0
|
||||
thread-handling one-thread-per-connection
|
||||
thread-stack 262144
|
||||
time-format %H:%i:%s
|
||||
timed-mutexes FALSE
|
||||
tmp-table-size 16777216
|
||||
transaction-alloc-block-size 8192
|
||||
transaction-isolation REPEATABLE-READ
|
||||
transaction-prealloc-size 4096
|
||||
updatable-views-with-limit YES
|
||||
use-symbolic-links FALSE
|
||||
verbose TRUE
|
||||
wait-timeout 28800
|
||||
warnings 1
|
||||
and boolean options {FALSE|TRUE} Value (after reading options)
|
||||
------------------------------------------------- ------------------------
|
||||
abort-slave-event-count 0
|
||||
allow-suspicious-udfs FALSE
|
||||
archive ON
|
||||
auto-increment-increment 1
|
||||
auto-increment-offset 1
|
||||
automatic-sp-privileges TRUE
|
||||
back-log 50
|
||||
big-tables FALSE
|
||||
bind-address (No default value)
|
||||
binlog-cache-size 32768
|
||||
binlog-format STATEMENT
|
||||
binlog-row-event-max-size 1024
|
||||
blackhole ON
|
||||
bulk-insert-buffer-size 8388608
|
||||
character-set-client-handshake TRUE
|
||||
character-set-filesystem binary
|
||||
character-set-server latin1
|
||||
character-sets-dir MYSQL_SHAREDIR/charsets/
|
||||
chroot (No default value)
|
||||
collation-server latin1_swedish_ci
|
||||
completion-type NO_CHAIN
|
||||
concurrent-insert AUTO
|
||||
connect-timeout 10
|
||||
console FALSE
|
||||
date-format %Y-%m-%d
|
||||
datetime-format %Y-%m-%d %H:%i:%s
|
||||
default-character-set latin1
|
||||
default-collation latin1_swedish_ci
|
||||
default-storage-engine MyISAM
|
||||
default-time-zone (No default value)
|
||||
default-week-format 0
|
||||
delay-key-write ON
|
||||
delayed-insert-limit 100
|
||||
delayed-insert-timeout 300
|
||||
delayed-queue-size 1000
|
||||
disconnect-slave-event-count 0
|
||||
div-precision-increment 4
|
||||
enable-locking FALSE
|
||||
engine-condition-pushdown TRUE
|
||||
event-scheduler OFF
|
||||
expire-logs-days 0
|
||||
external-locking FALSE
|
||||
federated ON
|
||||
flush FALSE
|
||||
flush-time 0
|
||||
ft-boolean-syntax + -><()~*:""&|
|
||||
ft-max-word-len 84
|
||||
ft-min-word-len 4
|
||||
ft-query-expansion-limit 20
|
||||
ft-stopword-file (No default value)
|
||||
gdb FALSE
|
||||
general-log FALSE
|
||||
group-concat-max-len 1024
|
||||
help TRUE
|
||||
ignore-builtin-innodb FALSE
|
||||
init-connect
|
||||
init-file (No default value)
|
||||
init-rpl-role MASTER
|
||||
init-slave
|
||||
interactive-timeout 28800
|
||||
join-buffer-size 131072
|
||||
keep-files-on-create FALSE
|
||||
key-buffer-size 8388608
|
||||
key-cache-age-threshold 300
|
||||
key-cache-block-size 1024
|
||||
key-cache-division-limit 100
|
||||
language MYSQL_SHAREDIR/
|
||||
large-pages FALSE
|
||||
lc-messages en_US
|
||||
lc-messages-dir MYSQL_SHAREDIR/
|
||||
lc-time-names en_US
|
||||
local-infile TRUE
|
||||
log-bin (No default value)
|
||||
log-bin-index (No default value)
|
||||
log-bin-trust-function-creators FALSE
|
||||
log-error
|
||||
log-isam myisam.log
|
||||
log-output FILE
|
||||
log-queries-not-using-indexes FALSE
|
||||
log-short-format FALSE
|
||||
log-slave-updates FALSE
|
||||
log-slow-admin-statements FALSE
|
||||
log-slow-slave-statements FALSE
|
||||
log-tc tc.log
|
||||
log-tc-size 24576
|
||||
log-update (No default value)
|
||||
log-warnings 1
|
||||
long-query-time 10
|
||||
low-priority-updates FALSE
|
||||
lower-case-table-names 1
|
||||
master-info-file master.info
|
||||
master-retry-count 86400
|
||||
max-allowed-packet 1048576
|
||||
max-binlog-cache-size 18446744073709547520
|
||||
max-binlog-dump-events 0
|
||||
max-binlog-size 1073741824
|
||||
max-connect-errors 10
|
||||
max-connections 151
|
||||
max-delayed-threads 20
|
||||
max-error-count 64
|
||||
max-heap-table-size 16777216
|
||||
max-join-size 18446744073709551615
|
||||
max-length-for-sort-data 1024
|
||||
max-prepared-stmt-count 16382
|
||||
max-relay-log-size 0
|
||||
max-seeks-for-key 18446744073709551615
|
||||
max-sort-length 1024
|
||||
max-sp-recursion-depth 0
|
||||
max-tmp-tables 32
|
||||
max-user-connections 0
|
||||
max-write-lock-count 18446744073709551615
|
||||
memlock FALSE
|
||||
min-examined-row-limit 0
|
||||
multi-range-count 256
|
||||
myisam-block-size 1024
|
||||
myisam-data-pointer-size 6
|
||||
myisam-max-sort-file-size 9223372036853727232
|
||||
myisam-mmap-size 18446744073709551615
|
||||
myisam-recover-options OFF
|
||||
myisam-repair-threads 1
|
||||
myisam-sort-buffer-size 8388608
|
||||
myisam-stats-method nulls_unequal
|
||||
myisam-use-mmap FALSE
|
||||
net-buffer-length 16384
|
||||
net-read-timeout 30
|
||||
net-retry-count 10
|
||||
net-write-timeout 60
|
||||
new FALSE
|
||||
old FALSE
|
||||
old-alter-table FALSE
|
||||
old-passwords FALSE
|
||||
old-style-user-limits FALSE
|
||||
optimizer-prune-level 1
|
||||
optimizer-search-depth 62
|
||||
optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on
|
||||
partition ON
|
||||
performance-schema FALSE
|
||||
performance-schema-events-waits-history-long-size 10000
|
||||
performance-schema-events-waits-history-size 10
|
||||
performance-schema-max-cond-classes 80
|
||||
performance-schema-max-cond-instances 1000
|
||||
performance-schema-max-file-classes 50
|
||||
performance-schema-max-file-handles 32768
|
||||
performance-schema-max-file-instances 10000
|
||||
performance-schema-max-mutex-classes 200
|
||||
performance-schema-max-mutex-instances 1000
|
||||
performance-schema-max-rwlock-classes 20
|
||||
performance-schema-max-rwlock-instances 1000
|
||||
performance-schema-max-table-handles 100000
|
||||
performance-schema-max-table-instances 50000
|
||||
performance-schema-max-thread-classes 50
|
||||
performance-schema-max-thread-instances 1000
|
||||
plugin-dir MYSQL_LIBDIR/mysql/plugin
|
||||
plugin-load (No default value)
|
||||
port 3306
|
||||
port-open-timeout 0
|
||||
preload-buffer-size 32768
|
||||
profiling-history-size 15
|
||||
query-alloc-block-size 8192
|
||||
query-cache-limit 1048576
|
||||
query-cache-min-res-unit 4096
|
||||
query-cache-size 0
|
||||
query-cache-type ON
|
||||
query-cache-wlock-invalidate FALSE
|
||||
query-prealloc-size 8192
|
||||
range-alloc-block-size 4096
|
||||
read-buffer-size 131072
|
||||
read-only FALSE
|
||||
read-rnd-buffer-size 262144
|
||||
record-buffer 131072
|
||||
relay-log (No default value)
|
||||
relay-log-index (No default value)
|
||||
relay-log-info-file relay-log.info
|
||||
relay-log-purge TRUE
|
||||
relay-log-recovery FALSE
|
||||
relay-log-space-limit 0
|
||||
replicate-same-server-id FALSE
|
||||
report-host (No default value)
|
||||
report-password (No default value)
|
||||
report-port 3306
|
||||
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
|
||||
skip-networking FALSE
|
||||
skip-show-database FALSE
|
||||
skip-slave-start FALSE
|
||||
slave-compressed-protocol FALSE
|
||||
slave-exec-mode STRICT
|
||||
slave-net-timeout 3600
|
||||
slave-skip-errors (No default value)
|
||||
slave-transaction-retries 10
|
||||
slave-type-conversions
|
||||
slow-launch-time 2
|
||||
slow-query-log FALSE
|
||||
socket /tmp/mysql.sock
|
||||
sort-buffer-size 2097152
|
||||
sporadic-binlog-dump-fail FALSE
|
||||
sql-mode
|
||||
symbolic-links FALSE
|
||||
sync-binlog 0
|
||||
sync-frm TRUE
|
||||
sync-master-info 0
|
||||
sync-relay-log 0
|
||||
sync-relay-log-info 0
|
||||
sysdate-is-now FALSE
|
||||
table-cache 400
|
||||
table-definition-cache 400
|
||||
table-lock-wait-timeout 50
|
||||
table-open-cache 400
|
||||
tc-heuristic-recover COMMIT
|
||||
thread-cache-size 0
|
||||
thread-handling one-thread-per-connection
|
||||
thread-stack 262144
|
||||
time-format %H:%i:%s
|
||||
timed-mutexes FALSE
|
||||
tmp-table-size 16777216
|
||||
transaction-alloc-block-size 8192
|
||||
transaction-isolation REPEATABLE-READ
|
||||
transaction-prealloc-size 4096
|
||||
updatable-views-with-limit YES
|
||||
use-symbolic-links FALSE
|
||||
verbose TRUE
|
||||
wait-timeout 28800
|
||||
warnings 1
|
||||
|
||||
To see what values a running MySQL server is using, type
|
||||
'mysqladmin variables' instead of 'mysqld --verbose --help'.
|
||||
|
@ -419,6 +419,38 @@ The following options may be given as the first argument:
|
||||
default}
|
||||
--partition[=name] Enable or disable partition plugin. Possible values are
|
||||
ON, OFF, FORCE (don't start if the plugin fails to load).
|
||||
--performance-schema
|
||||
Enable the performance schema.
|
||||
--performance-schema-events-waits-history-long-size=#
|
||||
Number of rows in EVENTS_WAITS_HISTORY_LONG.
|
||||
--performance-schema-events-waits-history-size=#
|
||||
Number of rows per thread in EVENTS_WAITS_HISTORY.
|
||||
--performance-schema-max-cond-classes=#
|
||||
Maximum number of condition instruments.
|
||||
--performance-schema-max-cond-instances=#
|
||||
Maximum number of instrumented condition objects.
|
||||
--performance-schema-max-file-classes=#
|
||||
Maximum number of file instruments.
|
||||
--performance-schema-max-file-handles=#
|
||||
Maximum number of opened instrumented files.
|
||||
--performance-schema-max-file-instances=#
|
||||
Maximum number of instrumented files.
|
||||
--performance-schema-max-mutex-classes=#
|
||||
Maximum number of mutex instruments.
|
||||
--performance-schema-max-mutex-instances=#
|
||||
Maximum number of instrumented MUTEX objects.
|
||||
--performance-schema-max-rwlock-classes=#
|
||||
Maximum number of rwlock instruments.
|
||||
--performance-schema-max-rwlock-instances=#
|
||||
Maximum number of instrumented RWLOCK objects.
|
||||
--performance-schema-max-table-handles=#
|
||||
Maximum number of opened instrumented tables.
|
||||
--performance-schema-max-table-instances=#
|
||||
Maximum number of instrumented tables.
|
||||
--performance-schema-max-thread-classes=#
|
||||
Maximum number of thread instruments.
|
||||
--performance-schema-max-thread-instances=#
|
||||
Maximum number of instrumented threads.
|
||||
--pid-file=name Pid file used by safe_mysqld
|
||||
--plugin-dir=name Directory for plugins
|
||||
--plugin-load=name Optional semicolon-separated list of plugins to load,
|
||||
@ -624,6 +656,12 @@ The following options may be given as the first argument:
|
||||
Number of times the slave SQL thread will retry a
|
||||
transaction in case it failed with a deadlock or elapsed
|
||||
lock wait timeout, before giving up and stopping
|
||||
--slave-type-conversions=name
|
||||
Set of slave type conversions that are enabled. Legal
|
||||
values are: ALL_LOSSY to enable lossy conversions and
|
||||
ALL_NON_LOSSY to enable non-lossy conversions. If the
|
||||
variable is assigned the empty set, no conversions are
|
||||
allowed and it is expected that the types match exactly.
|
||||
--slow-launch-time=#
|
||||
If creating the thread takes longer than this value (in
|
||||
seconds), the Slow_launch_threads counter will be
|
||||
@ -722,222 +760,239 @@ The following options may be given as the first argument:
|
||||
-W, --warnings[=#] Deprecated; use --log-warnings instead.
|
||||
|
||||
Variables (--variable-name=value)
|
||||
and boolean options {FALSE|TRUE} Value (after reading options)
|
||||
--------------------------------- ----------------------------------------
|
||||
abort-slave-event-count 0
|
||||
allow-suspicious-udfs FALSE
|
||||
archive ON
|
||||
auto-increment-increment 1
|
||||
auto-increment-offset 1
|
||||
automatic-sp-privileges TRUE
|
||||
back-log 50
|
||||
big-tables FALSE
|
||||
bind-address (No default value)
|
||||
binlog-cache-size 32768
|
||||
binlog-format STATEMENT
|
||||
binlog-row-event-max-size 1024
|
||||
blackhole ON
|
||||
bulk-insert-buffer-size 8388608
|
||||
character-set-client-handshake TRUE
|
||||
character-set-filesystem binary
|
||||
character-set-server latin1
|
||||
character-sets-dir MYSQL_SHAREDIR/charsets/
|
||||
chroot (No default value)
|
||||
collation-server latin1_swedish_ci
|
||||
completion-type NO_CHAIN
|
||||
concurrent-insert AUTO
|
||||
connect-timeout 10
|
||||
console FALSE
|
||||
date-format %Y-%m-%d
|
||||
datetime-format %Y-%m-%d %H:%i:%s
|
||||
default-character-set latin1
|
||||
default-collation latin1_swedish_ci
|
||||
default-storage-engine MyISAM
|
||||
default-time-zone (No default value)
|
||||
default-week-format 0
|
||||
delay-key-write ON
|
||||
delayed-insert-limit 100
|
||||
delayed-insert-timeout 300
|
||||
delayed-queue-size 1000
|
||||
disconnect-slave-event-count 0
|
||||
div-precision-increment 4
|
||||
enable-locking FALSE
|
||||
engine-condition-pushdown TRUE
|
||||
event-scheduler OFF
|
||||
expire-logs-days 0
|
||||
external-locking FALSE
|
||||
federated ON
|
||||
flush FALSE
|
||||
flush-time 1800
|
||||
ft-boolean-syntax + -><()~*:""&|
|
||||
ft-max-word-len 84
|
||||
ft-min-word-len 4
|
||||
ft-query-expansion-limit 20
|
||||
ft-stopword-file (No default value)
|
||||
gdb FALSE
|
||||
general-log FALSE
|
||||
group-concat-max-len 1024
|
||||
help TRUE
|
||||
ignore-builtin-innodb FALSE
|
||||
init-connect
|
||||
init-file (No default value)
|
||||
init-rpl-role MASTER
|
||||
init-slave
|
||||
interactive-timeout 28800
|
||||
join-buffer-size 131072
|
||||
keep-files-on-create FALSE
|
||||
key-buffer-size 8388608
|
||||
key-cache-age-threshold 300
|
||||
key-cache-block-size 1024
|
||||
key-cache-division-limit 100
|
||||
language MYSQL_SHAREDIR/
|
||||
lc-messages en_US
|
||||
lc-messages-dir MYSQL_SHAREDIR/
|
||||
lc-time-names en_US
|
||||
local-infile TRUE
|
||||
log-bin (No default value)
|
||||
log-bin-index (No default value)
|
||||
log-bin-trust-function-creators FALSE
|
||||
log-error
|
||||
log-isam myisam.log
|
||||
log-output FILE
|
||||
log-queries-not-using-indexes FALSE
|
||||
log-short-format FALSE
|
||||
log-slave-updates FALSE
|
||||
log-slow-admin-statements FALSE
|
||||
log-slow-slave-statements FALSE
|
||||
log-tc tc.log
|
||||
log-tc-size 24576
|
||||
log-update (No default value)
|
||||
log-warnings 1
|
||||
long-query-time 10
|
||||
low-priority-updates FALSE
|
||||
lower-case-table-names 1
|
||||
master-info-file master.info
|
||||
master-retry-count 86400
|
||||
max-allowed-packet 1048576
|
||||
max-binlog-cache-size 18446744073709547520
|
||||
max-binlog-dump-events 0
|
||||
max-binlog-size 1073741824
|
||||
max-connect-errors 10
|
||||
max-connections 151
|
||||
max-delayed-threads 20
|
||||
max-error-count 64
|
||||
max-heap-table-size 16777216
|
||||
max-join-size 18446744073709551615
|
||||
max-length-for-sort-data 1024
|
||||
max-prepared-stmt-count 16382
|
||||
max-relay-log-size 0
|
||||
max-seeks-for-key 18446744073709551615
|
||||
max-sort-length 1024
|
||||
max-sp-recursion-depth 0
|
||||
max-tmp-tables 32
|
||||
max-user-connections 0
|
||||
max-write-lock-count 18446744073709551615
|
||||
memlock FALSE
|
||||
min-examined-row-limit 0
|
||||
multi-range-count 256
|
||||
myisam-block-size 1024
|
||||
myisam-data-pointer-size 6
|
||||
myisam-max-sort-file-size 9223372036853727232
|
||||
myisam-mmap-size 18446744073709551615
|
||||
myisam-recover-options OFF
|
||||
myisam-repair-threads 1
|
||||
myisam-sort-buffer-size 8388608
|
||||
myisam-stats-method nulls_unequal
|
||||
myisam-use-mmap FALSE
|
||||
named-pipe FALSE
|
||||
net-buffer-length 16384
|
||||
net-read-timeout 30
|
||||
net-retry-count 10
|
||||
net-write-timeout 60
|
||||
new FALSE
|
||||
old FALSE
|
||||
old-alter-table FALSE
|
||||
old-passwords FALSE
|
||||
old-style-user-limits FALSE
|
||||
optimizer-prune-level 1
|
||||
optimizer-search-depth 62
|
||||
optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on
|
||||
partition ON
|
||||
plugin-dir MYSQL_LIBDIR/plugin
|
||||
plugin-load (No default value)
|
||||
port 3306
|
||||
port-open-timeout 0
|
||||
preload-buffer-size 32768
|
||||
profiling-history-size 15
|
||||
query-alloc-block-size 8192
|
||||
query-cache-limit 1048576
|
||||
query-cache-min-res-unit 4096
|
||||
query-cache-size 0
|
||||
query-cache-type ON
|
||||
query-cache-wlock-invalidate FALSE
|
||||
query-prealloc-size 8192
|
||||
range-alloc-block-size 4096
|
||||
read-buffer-size 131072
|
||||
read-only FALSE
|
||||
read-rnd-buffer-size 262144
|
||||
record-buffer 131072
|
||||
relay-log (No default value)
|
||||
relay-log-index (No default value)
|
||||
relay-log-info-file relay-log.info
|
||||
relay-log-purge TRUE
|
||||
relay-log-recovery FALSE
|
||||
relay-log-space-limit 0
|
||||
replicate-same-server-id FALSE
|
||||
report-host (No default value)
|
||||
report-password (No default value)
|
||||
report-port 3306
|
||||
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
|
||||
show-slave-auth-info FALSE
|
||||
skip-grant-tables TRUE
|
||||
skip-networking FALSE
|
||||
skip-show-database FALSE
|
||||
skip-slave-start FALSE
|
||||
slave-compressed-protocol FALSE
|
||||
slave-exec-mode STRICT
|
||||
slave-net-timeout 3600
|
||||
slave-skip-errors (No default value)
|
||||
slave-transaction-retries 10
|
||||
slow-launch-time 2
|
||||
slow-query-log FALSE
|
||||
socket MySQL
|
||||
sort-buffer-size 2097152
|
||||
sporadic-binlog-dump-fail FALSE
|
||||
sql-mode
|
||||
symbolic-links FALSE
|
||||
sync-binlog 0
|
||||
sync-frm TRUE
|
||||
sync-master-info 0
|
||||
sync-relay-log 0
|
||||
sync-relay-log-info 0
|
||||
sysdate-is-now FALSE
|
||||
table-cache 400
|
||||
table-definition-cache 400
|
||||
table-lock-wait-timeout 50
|
||||
table-open-cache 400
|
||||
tc-heuristic-recover COMMIT
|
||||
thread-cache-size 0
|
||||
thread-handling one-thread-per-connection
|
||||
thread-stack 262144
|
||||
time-format %H:%i:%s
|
||||
timed-mutexes FALSE
|
||||
tmp-table-size 16777216
|
||||
transaction-alloc-block-size 8192
|
||||
transaction-isolation REPEATABLE-READ
|
||||
transaction-prealloc-size 4096
|
||||
updatable-views-with-limit YES
|
||||
use-symbolic-links FALSE
|
||||
verbose TRUE
|
||||
wait-timeout 28800
|
||||
warnings 1
|
||||
and boolean options {FALSE|TRUE} Value (after reading options)
|
||||
------------------------------------------------- ------------------------
|
||||
abort-slave-event-count 0
|
||||
allow-suspicious-udfs FALSE
|
||||
archive ON
|
||||
auto-increment-increment 1
|
||||
auto-increment-offset 1
|
||||
automatic-sp-privileges TRUE
|
||||
back-log 50
|
||||
big-tables FALSE
|
||||
bind-address (No default value)
|
||||
binlog-cache-size 32768
|
||||
binlog-format STATEMENT
|
||||
binlog-row-event-max-size 1024
|
||||
blackhole ON
|
||||
bulk-insert-buffer-size 8388608
|
||||
character-set-client-handshake TRUE
|
||||
character-set-filesystem binary
|
||||
character-set-server latin1
|
||||
character-sets-dir MYSQL_SHAREDIR/charsets/
|
||||
chroot (No default value)
|
||||
collation-server latin1_swedish_ci
|
||||
completion-type NO_CHAIN
|
||||
concurrent-insert AUTO
|
||||
connect-timeout 10
|
||||
console FALSE
|
||||
date-format %Y-%m-%d
|
||||
datetime-format %Y-%m-%d %H:%i:%s
|
||||
default-character-set latin1
|
||||
default-collation latin1_swedish_ci
|
||||
default-storage-engine MyISAM
|
||||
default-time-zone (No default value)
|
||||
default-week-format 0
|
||||
delay-key-write ON
|
||||
delayed-insert-limit 100
|
||||
delayed-insert-timeout 300
|
||||
delayed-queue-size 1000
|
||||
disconnect-slave-event-count 0
|
||||
div-precision-increment 4
|
||||
enable-locking FALSE
|
||||
engine-condition-pushdown TRUE
|
||||
event-scheduler OFF
|
||||
expire-logs-days 0
|
||||
external-locking FALSE
|
||||
federated ON
|
||||
flush FALSE
|
||||
flush-time 1800
|
||||
ft-boolean-syntax + -><()~*:""&|
|
||||
ft-max-word-len 84
|
||||
ft-min-word-len 4
|
||||
ft-query-expansion-limit 20
|
||||
ft-stopword-file (No default value)
|
||||
gdb FALSE
|
||||
general-log FALSE
|
||||
group-concat-max-len 1024
|
||||
help TRUE
|
||||
ignore-builtin-innodb FALSE
|
||||
init-connect
|
||||
init-file (No default value)
|
||||
init-rpl-role MASTER
|
||||
init-slave
|
||||
interactive-timeout 28800
|
||||
join-buffer-size 131072
|
||||
keep-files-on-create FALSE
|
||||
key-buffer-size 8388608
|
||||
key-cache-age-threshold 300
|
||||
key-cache-block-size 1024
|
||||
key-cache-division-limit 100
|
||||
language MYSQL_SHAREDIR/
|
||||
lc-messages en_US
|
||||
lc-messages-dir MYSQL_SHAREDIR/
|
||||
lc-time-names en_US
|
||||
local-infile TRUE
|
||||
log-bin (No default value)
|
||||
log-bin-index (No default value)
|
||||
log-bin-trust-function-creators FALSE
|
||||
log-error
|
||||
log-isam myisam.log
|
||||
log-output FILE
|
||||
log-queries-not-using-indexes FALSE
|
||||
log-short-format FALSE
|
||||
log-slave-updates FALSE
|
||||
log-slow-admin-statements FALSE
|
||||
log-slow-slave-statements FALSE
|
||||
log-tc tc.log
|
||||
log-tc-size 24576
|
||||
log-update (No default value)
|
||||
log-warnings 1
|
||||
long-query-time 10
|
||||
low-priority-updates FALSE
|
||||
lower-case-table-names 1
|
||||
master-info-file master.info
|
||||
master-retry-count 86400
|
||||
max-allowed-packet 1048576
|
||||
max-binlog-cache-size 18446744073709547520
|
||||
max-binlog-dump-events 0
|
||||
max-binlog-size 1073741824
|
||||
max-connect-errors 10
|
||||
max-connections 151
|
||||
max-delayed-threads 20
|
||||
max-error-count 64
|
||||
max-heap-table-size 16777216
|
||||
max-join-size 18446744073709551615
|
||||
max-length-for-sort-data 1024
|
||||
max-prepared-stmt-count 16382
|
||||
max-relay-log-size 0
|
||||
max-seeks-for-key 18446744073709551615
|
||||
max-sort-length 1024
|
||||
max-sp-recursion-depth 0
|
||||
max-tmp-tables 32
|
||||
max-user-connections 0
|
||||
max-write-lock-count 18446744073709551615
|
||||
memlock FALSE
|
||||
min-examined-row-limit 0
|
||||
multi-range-count 256
|
||||
myisam-block-size 1024
|
||||
myisam-data-pointer-size 6
|
||||
myisam-max-sort-file-size 9223372036853727232
|
||||
myisam-mmap-size 18446744073709551615
|
||||
myisam-recover-options OFF
|
||||
myisam-repair-threads 1
|
||||
myisam-sort-buffer-size 8388608
|
||||
myisam-stats-method nulls_unequal
|
||||
myisam-use-mmap FALSE
|
||||
named-pipe FALSE
|
||||
net-buffer-length 16384
|
||||
net-read-timeout 30
|
||||
net-retry-count 10
|
||||
net-write-timeout 60
|
||||
new FALSE
|
||||
old FALSE
|
||||
old-alter-table FALSE
|
||||
old-passwords FALSE
|
||||
old-style-user-limits FALSE
|
||||
optimizer-prune-level 1
|
||||
optimizer-search-depth 62
|
||||
optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on
|
||||
partition ON
|
||||
performance-schema FALSE
|
||||
performance-schema-events-waits-history-long-size 10000
|
||||
performance-schema-events-waits-history-size 10
|
||||
performance-schema-max-cond-classes 80
|
||||
performance-schema-max-cond-instances 1000
|
||||
performance-schema-max-file-classes 50
|
||||
performance-schema-max-file-handles 32768
|
||||
performance-schema-max-file-instances 10000
|
||||
performance-schema-max-mutex-classes 200
|
||||
performance-schema-max-mutex-instances 1000
|
||||
performance-schema-max-rwlock-classes 20
|
||||
performance-schema-max-rwlock-instances 1000
|
||||
performance-schema-max-table-handles 100000
|
||||
performance-schema-max-table-instances 50000
|
||||
performance-schema-max-thread-classes 50
|
||||
performance-schema-max-thread-instances 1000
|
||||
plugin-dir MYSQL_LIBDIR/plugin
|
||||
plugin-load (No default value)
|
||||
port 3306
|
||||
port-open-timeout 0
|
||||
preload-buffer-size 32768
|
||||
profiling-history-size 15
|
||||
query-alloc-block-size 8192
|
||||
query-cache-limit 1048576
|
||||
query-cache-min-res-unit 4096
|
||||
query-cache-size 0
|
||||
query-cache-type ON
|
||||
query-cache-wlock-invalidate FALSE
|
||||
query-prealloc-size 8192
|
||||
range-alloc-block-size 4096
|
||||
read-buffer-size 131072
|
||||
read-only FALSE
|
||||
read-rnd-buffer-size 262144
|
||||
record-buffer 131072
|
||||
relay-log (No default value)
|
||||
relay-log-index (No default value)
|
||||
relay-log-info-file relay-log.info
|
||||
relay-log-purge TRUE
|
||||
relay-log-recovery FALSE
|
||||
relay-log-space-limit 0
|
||||
replicate-same-server-id FALSE
|
||||
report-host (No default value)
|
||||
report-password (No default value)
|
||||
report-port 3306
|
||||
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
|
||||
show-slave-auth-info FALSE
|
||||
skip-grant-tables TRUE
|
||||
skip-networking FALSE
|
||||
skip-show-database FALSE
|
||||
skip-slave-start FALSE
|
||||
slave-compressed-protocol FALSE
|
||||
slave-exec-mode STRICT
|
||||
slave-net-timeout 3600
|
||||
slave-skip-errors (No default value)
|
||||
slave-transaction-retries 10
|
||||
slave-type-conversions
|
||||
slow-launch-time 2
|
||||
slow-query-log FALSE
|
||||
socket MySQL
|
||||
sort-buffer-size 2097152
|
||||
sporadic-binlog-dump-fail FALSE
|
||||
sql-mode
|
||||
symbolic-links FALSE
|
||||
sync-binlog 0
|
||||
sync-frm TRUE
|
||||
sync-master-info 0
|
||||
sync-relay-log 0
|
||||
sync-relay-log-info 0
|
||||
sysdate-is-now FALSE
|
||||
table-cache 400
|
||||
table-definition-cache 400
|
||||
table-lock-wait-timeout 50
|
||||
table-open-cache 400
|
||||
tc-heuristic-recover COMMIT
|
||||
thread-cache-size 0
|
||||
thread-handling one-thread-per-connection
|
||||
thread-stack 262144
|
||||
time-format %H:%i:%s
|
||||
timed-mutexes FALSE
|
||||
tmp-table-size 16777216
|
||||
transaction-alloc-block-size 8192
|
||||
transaction-isolation REPEATABLE-READ
|
||||
transaction-prealloc-size 4096
|
||||
updatable-views-with-limit YES
|
||||
use-symbolic-links FALSE
|
||||
verbose TRUE
|
||||
wait-timeout 28800
|
||||
warnings 1
|
||||
|
||||
To see what values a running MySQL server is using, type
|
||||
'mysqladmin variables' instead of 'mysqld --verbose --help'.
|
||||
|
@ -42,7 +42,7 @@ id
|
||||
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
BEGIN;
|
||||
INSERT INTO t1 VALUES(9);
|
||||
ERROR HY000: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
|
||||
ERROR HY000: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
|
||||
COMMIT;
|
||||
COMMIT;
|
||||
DROP TABLE t1;
|
||||
|
@ -262,6 +262,7 @@ Database
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
performance_schema
|
||||
test
|
||||
prepare stmt4 from ' show tables from test like ''t2%'' ';
|
||||
execute stmt4;
|
||||
|
@ -9,5 +9,6 @@ information_schema
|
||||
foo
|
||||
mtr
|
||||
mysql
|
||||
performance_schema
|
||||
test
|
||||
drop schema foo;
|
||||
|
@ -142,6 +142,7 @@ Database
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
performance_schema
|
||||
test
|
||||
show databases like "test%";
|
||||
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
|
||||
|
@ -8,18 +8,20 @@ SET @var2=char(ascii('a'));
|
||||
insert into t1 values (@var1),(@var2);
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # User var # # @`a b`=_latin1 0x68656C6C6F COLLATE latin1_swedish_ci
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES(@`a b`)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # User var # # @`var1`=_latin1 0x273B616161 COLLATE latin1_swedish_ci
|
||||
master-bin.000001 # User var # # @`var2`=_binary 0x61 COLLATE binary
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values (@var1),(@var2)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
flush logs;
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`/*!*/;
|
||||
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/*!*/;
|
||||
@ -29,13 +31,27 @@ 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/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=10000/*!*/;
|
||||
INSERT INTO t1 VALUES(@`a b`)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=10000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
SET TIMESTAMP=10000/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`/*!*/;
|
||||
SET @`var2`:=_binary 0x61 COLLATE `binary`/*!*/;
|
||||
SET TIMESTAMP=10000/*!*/;
|
||||
insert into t1 values (@var1),(@var2)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=10000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
|
@ -29,9 +29,13 @@ show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; create temporary table tt1 (a int)
|
||||
master-bin.000001 # Query # # use `test`; create table t1 (a int)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values (1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # drop database if exists mysqltest1
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values (1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; drop table tt1, t1
|
||||
FLUSH STATUS;
|
||||
set binlog_format=mixed;
|
||||
@ -65,9 +69,13 @@ show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; create temporary table tt1 (a int)
|
||||
master-bin.000001 # Query # # use `test`; create table t1 (a int)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values (1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # drop database if exists mysqltest1
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values (1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; drop table tt1, t1
|
||||
FLUSH STATUS;
|
||||
set binlog_format=row;
|
||||
@ -116,4 +124,5 @@ Database
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
performance_schema
|
||||
test
|
||||
|
@ -0,0 +1,90 @@
|
||||
set @save_binlog_format= @@global.binlog_format;
|
||||
create table t1 (a int) engine= myisam;
|
||||
create table t2 (a int) engine= innodb;
|
||||
SELECT @@session.binlog_format;
|
||||
@@session.binlog_format
|
||||
ROW
|
||||
SET AUTOCOMMIT=1;
|
||||
# Test that the session variable 'binlog_format'
|
||||
# is writable outside a transaction.
|
||||
set @@session.binlog_format= statement;
|
||||
SELECT @@session.binlog_format;
|
||||
@@session.binlog_format
|
||||
STATEMENT
|
||||
begin;
|
||||
# Test that the session variable 'binlog_format' is read-only
|
||||
# inside a transaction with no preceding updates.
|
||||
set @@session.binlog_format= mixed;
|
||||
ERROR HY000: Cannot modify @@session.binlog_format inside a transaction
|
||||
insert into t2 values (1);
|
||||
# Test that the session variable 'binlog_format' is read-only
|
||||
# inside a transaction with preceding transactional updates.
|
||||
set @@session.binlog_format= row;
|
||||
ERROR HY000: Cannot modify @@session.binlog_format inside a transaction
|
||||
commit;
|
||||
begin;
|
||||
insert into t1 values (2);
|
||||
# Test that the session variable 'binlog_format' is read-only
|
||||
# inside a transaction with preceding non-transactional updates.
|
||||
set @@session.binlog_format= statement;
|
||||
ERROR HY000: Cannot modify @@session.binlog_format inside a transaction
|
||||
commit;
|
||||
# Test that the session variable 'binlog_format' is writable
|
||||
# when AUTOCOMMIT=0, before a transaction has started.
|
||||
set AUTOCOMMIT=0;
|
||||
set @@session.binlog_format= row;
|
||||
SELECT @@session.binlog_format;
|
||||
@@session.binlog_format
|
||||
ROW
|
||||
insert into t1 values (4);
|
||||
# Test that the session variable 'binlog_format' is read-only inside an
|
||||
# AUTOCOMMIT=0 transaction with preceding non-transactional updates.
|
||||
set @@session.binlog_format= statement;
|
||||
ERROR HY000: Cannot modify @@session.binlog_format inside a transaction
|
||||
SELECT @@session.binlog_format;
|
||||
@@session.binlog_format
|
||||
ROW
|
||||
commit;
|
||||
insert into t2 values (5);
|
||||
# Test that the session variable 'binlog_format' is read-only inside an
|
||||
# AUTOCOMMIT=0 transaction with preceding transactional updates.
|
||||
set @@session.binlog_format= row;
|
||||
ERROR HY000: Cannot modify @@session.binlog_format inside a transaction
|
||||
SELECT @@session.binlog_format;
|
||||
@@session.binlog_format
|
||||
ROW
|
||||
commit;
|
||||
begin;
|
||||
insert into t2 values (6);
|
||||
# Test that the global variable 'binlog_format' is writable
|
||||
# inside a transaction.
|
||||
SELECT @@global.binlog_format;
|
||||
@@global.binlog_format
|
||||
ROW
|
||||
set @@global.binlog_format= statement;
|
||||
SELECT @@global.binlog_format;
|
||||
@@global.binlog_format
|
||||
STATEMENT
|
||||
commit;
|
||||
set @@global.binlog_format= @save_binlog_format;
|
||||
create table t3(a int, b int) engine= innodb;
|
||||
create table t4(a int) engine= innodb;
|
||||
create table t5(a int) engine= innodb;
|
||||
create trigger tr2 after insert on t3 for each row begin
|
||||
insert into t4(a) values(1);
|
||||
set @@session.binlog_format= statement;
|
||||
insert into t4(a) values(2);
|
||||
insert into t5(a) values(3);
|
||||
end |
|
||||
# Test that the session variable 'binlog_format' is read-only
|
||||
# in sub-statements.
|
||||
insert into t3(a,b) values(1,1);
|
||||
ERROR HY000: Cannot change the binary logging format inside a stored function or trigger
|
||||
SELECT @@session.binlog_format;
|
||||
@@session.binlog_format
|
||||
ROW
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
drop table t4;
|
||||
drop table t5;
|
@ -14,12 +14,12 @@ SET BINLOG_FORMAT=STATEMENT;
|
||||
BEGIN;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||
UPDATE t1 SET b = 1*a WHERE a > 1;
|
||||
ERROR HY000: Binary logging not possible. Message: Transaction level 'READ-UNCOMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
|
||||
ERROR HY000: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
|
||||
COMMIT;
|
||||
BEGIN;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
UPDATE t1 SET b = 2*a WHERE a > 2;
|
||||
ERROR HY000: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
|
||||
ERROR HY000: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
|
||||
COMMIT;
|
||||
BEGIN;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
||||
@ -123,7 +123,7 @@ Binlog_cache_disk_use 0
|
||||
create table t1 (a int) engine=innodb;
|
||||
show status like "binlog_cache_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_use 1
|
||||
Binlog_cache_use 2
|
||||
show status like "binlog_cache_disk_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_disk_use 1
|
||||
@ -132,7 +132,7 @@ delete from t1;
|
||||
commit;
|
||||
show status like "binlog_cache_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_use 2
|
||||
Binlog_cache_use 4
|
||||
show status like "binlog_cache_disk_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_disk_use 1
|
||||
|
@ -1,3 +1,4 @@
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
create table t1 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB;
|
||||
create table t2 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=MyISAM;
|
||||
create table t3 (a int auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB;
|
||||
@ -87,8 +88,10 @@ select @b /* must be 1 at the end of a stmt calling bug27563() */;
|
||||
must have the update query event more to FD
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # User var # # @`b`=0
|
||||
master-bin.000001 # Query # # use `test`; update t4 set b=b + bug27563(b)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
select
|
||||
(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
|
||||
is not null;
|
||||
@ -123,8 +126,10 @@ select @b /* must be 1 at the end of a stmt calling bug27563() */;
|
||||
must have the delete query event more to FD
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # User var # # @`b`=0
|
||||
master-bin.000001 # Query # # use `test`; delete from t4 where b=bug27563(1) or b=bug27563(2)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
select
|
||||
(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
|
||||
is not null;
|
||||
|
@ -18,8 +18,10 @@ load data infile '../../std_data/rpl_loaddata.dat' into table t2 /* will be "kil
|
||||
ERROR 70100: Query execution was interrupted
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=#
|
||||
master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE `t2` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (a, b) ;file_id=#
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
select
|
||||
(@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog"))
|
||||
is not null;
|
||||
|
@ -9,7 +9,7 @@ drop table if exists t1;
|
||||
create table t1 (a int) engine=innodb;
|
||||
show status like "binlog_cache_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_use 1
|
||||
Binlog_cache_use 2
|
||||
show status like "binlog_cache_disk_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_disk_use 1
|
||||
@ -18,7 +18,7 @@ delete from t1;
|
||||
commit;
|
||||
show status like "binlog_cache_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_use 2
|
||||
Binlog_cache_use 4
|
||||
show status like "binlog_cache_disk_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_disk_use 1
|
||||
|
@ -1,406 +0,0 @@
|
||||
###################################################################################
|
||||
# CONFIGURATION
|
||||
###################################################################################
|
||||
CREATE TABLE nt_1 (a text, b int PRIMARY KEY) ENGINE = MyISAM;
|
||||
CREATE TABLE nt_2 (a text, b int PRIMARY KEY) ENGINE = MyISAM;
|
||||
CREATE TABLE tt_1 (a text, b int PRIMARY KEY) ENGINE = Innodb;
|
||||
CREATE TABLE tt_2 (a text, b int PRIMARY KEY) ENGINE = Innodb;
|
||||
CREATE TRIGGER tr_i_tt_1_to_nt_1 BEFORE INSERT ON tt_1 FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO nt_1 VALUES (NEW.a, NEW.b);
|
||||
END|
|
||||
CREATE TRIGGER tr_i_nt_2_to_tt_2 BEFORE INSERT ON nt_2 FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO tt_2 VALUES (NEW.a, NEW.b);
|
||||
END|
|
||||
###################################################################################
|
||||
# CHECK HISTORY IN BINLOG
|
||||
###################################################################################
|
||||
|
||||
|
||||
|
||||
*** "B M* T C" with error in M* generates in the binlog the "B M* R B T C" entries
|
||||
|
||||
INSERT INTO nt_1 VALUES ("new text 1", 1);
|
||||
BEGIN;
|
||||
INSERT INTO tt_1 VALUES (USER(), 2), (USER(), 1);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 3", 3);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO nt_1 VALUES ("new text 1", 1)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 3", 3)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
INSERT INTO tt_2 VALUES ("new text 4", 4);
|
||||
BEGIN;
|
||||
INSERT INTO nt_2 VALUES (USER(), 5), (USER(), 4);
|
||||
ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 6", 6);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 4", 4)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 6", 6)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B M M* T C" with error in M* generates in the binlog the "B M M* T C" entries
|
||||
|
||||
INSERT INTO nt_1 VALUES ("new text 10", 10);
|
||||
BEGIN;
|
||||
INSERT INTO tt_1 VALUES ("new text 7", 7), ("new text 8", 8);
|
||||
INSERT INTO tt_1 VALUES (USER(), 9), (USER(), 10);
|
||||
ERROR 23000: Duplicate entry '10' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 11", 11);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO nt_1 VALUES ("new text 10", 10)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_1 VALUES ("new text 7", 7), ("new text 8", 8)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 11", 11)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
INSERT INTO tt_2 VALUES ("new text 15", 15);
|
||||
BEGIN;
|
||||
INSERT INTO nt_2 VALUES ("new text 12", 12), ("new text 13", 13);
|
||||
INSERT INTO nt_2 VALUES (USER(), 14), (USER(), 15);
|
||||
ERROR 23000: Duplicate entry '15' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 16", 16);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 15", 15)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO nt_2 VALUES ("new text 12", 12), ("new text 13", 13)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 16", 16)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B M* M* T C" with error in M* generates in the binlog the "B M* R B M* R B T C" entries
|
||||
|
||||
INSERT INTO nt_1 VALUES ("new text 18", 18);
|
||||
INSERT INTO nt_1 VALUES ("new text 20", 20);
|
||||
BEGIN;
|
||||
INSERT INTO tt_1 VALUES (USER(), 17), (USER(), 18);
|
||||
ERROR 23000: Duplicate entry '18' for key 'PRIMARY'
|
||||
INSERT INTO tt_1 VALUES (USER(), 19), (USER(), 20);
|
||||
ERROR 23000: Duplicate entry '20' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 21", 21);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO nt_1 VALUES ("new text 18", 18)
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO nt_1 VALUES ("new text 20", 20)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 21", 21)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
INSERT INTO tt_2 VALUES ("new text 23", 23);
|
||||
INSERT INTO tt_2 VALUES ("new text 25", 25);
|
||||
BEGIN;
|
||||
INSERT INTO nt_2 VALUES (USER(), 22), (USER(), 23);
|
||||
ERROR 23000: Duplicate entry '23' for key 'PRIMARY'
|
||||
INSERT INTO nt_2 VALUES (USER(), 24), (USER(), 25);
|
||||
ERROR 23000: Duplicate entry '25' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 26", 26);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 23", 23)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 25", 25)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 26", 26)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B T INSERT M...SELECT* C" with an error in INSERT M...SELECT* generates
|
||||
*** in the binlog the following entries: "Nothing".
|
||||
*** There is a bug in that will be fixed after WL#2687. Please, check BUG#47175 for further details.
|
||||
|
||||
TRUNCATE TABLE nt_2;
|
||||
TRUNCATE TABLE tt_2;
|
||||
INSERT INTO tt_2 VALUES ("new text 7", 7);
|
||||
BEGIN;
|
||||
INSERT INTO tt_2 VALUES ("new text 27", 27);
|
||||
INSERT INTO nt_2(a, b) SELECT USER(), b FROM nt_1;
|
||||
ERROR 23000: Duplicate entry '7' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 28", 28);
|
||||
ROLLBACK;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_2
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_2
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 7", 7)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B INSERT M..SELECT* C" with an error in INSERT M...SELECT* generates
|
||||
*** in the binlog the following entries: "B INSERT M..SELECT* R".
|
||||
|
||||
TRUNCATE TABLE nt_2;
|
||||
TRUNCATE TABLE tt_2;
|
||||
INSERT INTO tt_2 VALUES ("new text 7", 7);
|
||||
BEGIN;
|
||||
INSERT INTO nt_2(a, b) SELECT USER(), b FROM nt_1;
|
||||
ERROR 23000: Duplicate entry '7' for key 'PRIMARY'
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_2
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_2
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO tt_2 VALUES ("new text 7", 7)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
|
||||
|
||||
|
||||
*** "B N N T C" generates in the binlog the "B N C B N C B T C" entries
|
||||
|
||||
TRUNCATE TABLE nt_1;
|
||||
TRUNCATE TABLE tt_2;
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 1);
|
||||
INSERT INTO nt_1 VALUES (USER(), 2);
|
||||
INSERT INTO tt_2 VALUES (USER(), 3);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_1
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_2
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B N N T R" generates in the binlog the "B N C B N C B T R" entries
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 4);
|
||||
INSERT INTO nt_1 VALUES (USER(), 5);
|
||||
INSERT INTO tt_2 VALUES (USER(), 6);
|
||||
ROLLBACK;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
|
||||
|
||||
|
||||
*** "B N* N* T C" with error in N* generates in the binlog the "B N R B N R B T C" entries
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 7), (USER(), 1);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
INSERT INTO nt_1 VALUES (USER(), 8), (USER(), 1);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES (USER(), 9);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B N* N* T R" with error in N* generates in the binlog the "B N R B N R B T R" entries
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 10), (USER(), 1);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
INSERT INTO nt_1 VALUES (USER(), 11), (USER(), 1);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES (USER(), 12);
|
||||
ROLLBACK;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
|
||||
|
||||
|
||||
*** "B N N T N T C" generates in the binlog the "B N C B N C B T N T C" entries
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 13);
|
||||
INSERT INTO nt_1 VALUES (USER(), 14);
|
||||
INSERT INTO tt_2 VALUES (USER(), 15);
|
||||
INSERT INTO nt_1 VALUES (USER(), 16);
|
||||
INSERT INTO tt_2 VALUES (USER(), 17);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B N N T N T R" generates in the binlog the "B N C B N C B T N T R" entries
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 18);
|
||||
INSERT INTO nt_1 VALUES (USER(), 19);
|
||||
INSERT INTO tt_2 VALUES (USER(), 20);
|
||||
INSERT INTO nt_1 VALUES (USER(), 21);
|
||||
INSERT INTO tt_2 VALUES (USER(), 22);
|
||||
ROLLBACK;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
###################################################################################
|
||||
# CLEAN
|
||||
###################################################################################
|
||||
DROP TABLE tt_1;
|
||||
DROP TABLE tt_2;
|
||||
DROP TABLE nt_1;
|
||||
DROP TABLE nt_2;
|
@ -1,3 +1,4 @@
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
CREATE TABLE t1m (m INT, n INT) ENGINE=MYISAM;
|
||||
CREATE TABLE t1b (b INT, c INT) ENGINE=BLACKHOLE;
|
||||
CREATE TABLE t1n (e INT, f INT) ENGINE=NDB;
|
||||
@ -6,10 +7,15 @@ SET SESSION BINLOG_FORMAT=STATEMENT;
|
||||
INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
The last event before the COMMIT is use `test`; UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c
|
||||
*** Please look in binlog_multi_engine.test if you have a diff here ****
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
UPDATE t1n, t1b SET e = 2, b = 3 WHERE f = c;
|
||||
COMMIT;
|
||||
TRUNCATE t1m;
|
||||
@ -20,8 +26,12 @@ Log_name Pos Event_type Server_id End_log_pos Info
|
||||
mysqld-bin.000001 # Query # # BEGIN
|
||||
mysqld-bin.000001 # Query # # use `test`; INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
mysqld-bin.000001 # Query # # COMMIT
|
||||
mysqld-bin.000001 # Query # # BEGIN
|
||||
mysqld-bin.000001 # Query # # use `test`; INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
mysqld-bin.000001 # Query # # COMMIT
|
||||
mysqld-bin.000001 # Query # # BEGIN
|
||||
mysqld-bin.000001 # Query # # use `test`; UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c
|
||||
mysqld-bin.000001 # Query # # COMMIT
|
||||
mysqld-bin.000001 # Query # # BEGIN
|
||||
mysqld-bin.000001 # Query # # use `test`; INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
mysqld-bin.000001 # Query # # use `test`; UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f
|
||||
@ -39,10 +49,11 @@ RESET MASTER;
|
||||
SET SESSION BINLOG_FORMAT=MIXED;
|
||||
INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
The last event before the COMMIT is use `test`; INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
|
||||
UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
|
||||
ERROR HY000: Binary logging not possible. Message: Statement cannot be written atomically since more than one engine involved and at least one engine is self-logging
|
||||
ERROR HY000: Cannot execute statement: binlogging impossible since more than one engine is involved and at least one engine is self-logging.
|
||||
TRUNCATE t1m;
|
||||
TRUNCATE t1b;
|
||||
TRUNCATE t1n;
|
||||
@ -51,14 +62,15 @@ Log_name Pos Event_type Server_id End_log_pos Info
|
||||
mysqld-bin.000001 # Query # # BEGIN
|
||||
mysqld-bin.000001 # Query # # use `test`; INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
mysqld-bin.000001 # Query # # COMMIT
|
||||
mysqld-bin.000001 # Query # # BEGIN
|
||||
mysqld-bin.000001 # Query # # use `test`; INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
mysqld-bin.000001 # Query # # COMMIT
|
||||
mysqld-bin.000001 # Query # # BEGIN
|
||||
mysqld-bin.000001 # Table_map # # table_id: # (test.t1n)
|
||||
mysqld-bin.000001 # Table_map # # table_id: # (mysql.ndb_apply_status)
|
||||
mysqld-bin.000001 # Write_rows # # table_id: #
|
||||
mysqld-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
mysqld-bin.000001 # Query # # COMMIT
|
||||
mysqld-bin.000001 # Query # # use `test`; UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c
|
||||
mysqld-bin.000001 # Query # # use `test`; TRUNCATE t1m
|
||||
mysqld-bin.000001 # Query # # use `test`; TRUNCATE t1b
|
||||
mysqld-bin.000001 # Query # # use `test`; TRUNCATE t1n
|
||||
@ -68,9 +80,9 @@ INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
|
||||
ERROR HY000: Binary logging not possible. Message: Statement cannot be written atomically since more than one engine involved and at least one engine is self-logging
|
||||
ERROR HY000: Cannot execute statement: binlogging impossible since more than one engine is involved and at least one engine is self-logging.
|
||||
UPDATE t1n, t1b SET e = 2, b = 3 WHERE f = c;
|
||||
ERROR HY000: Binary logging not possible. Message: Statement cannot be written atomically since more than one engine involved and at least one engine is self-logging
|
||||
ERROR HY000: Cannot execute statement: binlogging impossible since more than one engine is involved and at least one engine is self-logging.
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
mysqld-bin.000001 # Query # # BEGIN
|
||||
|
@ -1,440 +0,0 @@
|
||||
###################################################################################
|
||||
# CONFIGURATION
|
||||
###################################################################################
|
||||
CREATE TABLE nt_1 (a text, b int PRIMARY KEY) ENGINE = MyISAM;
|
||||
CREATE TABLE nt_2 (a text, b int PRIMARY KEY) ENGINE = MyISAM;
|
||||
CREATE TABLE tt_1 (a text, b int PRIMARY KEY) ENGINE = Innodb;
|
||||
CREATE TABLE tt_2 (a text, b int PRIMARY KEY) ENGINE = Innodb;
|
||||
CREATE TRIGGER tr_i_tt_1_to_nt_1 BEFORE INSERT ON tt_1 FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO nt_1 VALUES (NEW.a, NEW.b);
|
||||
END|
|
||||
CREATE TRIGGER tr_i_nt_2_to_tt_2 BEFORE INSERT ON nt_2 FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO tt_2 VALUES (NEW.a, NEW.b);
|
||||
END|
|
||||
###################################################################################
|
||||
# CHECK HISTORY IN BINLOG
|
||||
###################################################################################
|
||||
|
||||
|
||||
|
||||
*** "B M* T C" with error in M* generates in the binlog the "B M* R B T C" entries
|
||||
|
||||
INSERT INTO nt_1 VALUES ("new text 1", 1);
|
||||
BEGIN;
|
||||
INSERT INTO tt_1 VALUES (USER(), 2), (USER(), 1);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 3", 3);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
INSERT INTO tt_2 VALUES ("new text 4", 4);
|
||||
BEGIN;
|
||||
INSERT INTO nt_2 VALUES (USER(), 5), (USER(), 4);
|
||||
ERROR 23000: Duplicate entry '4' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 6", 6);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B M M* T C" with error in M* generates in the binlog the "B M M* T C" entries
|
||||
|
||||
INSERT INTO nt_1 VALUES ("new text 10", 10);
|
||||
BEGIN;
|
||||
INSERT INTO tt_1 VALUES ("new text 7", 7), ("new text 8", 8);
|
||||
INSERT INTO tt_1 VALUES (USER(), 9), (USER(), 10);
|
||||
ERROR 23000: Duplicate entry '10' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 11", 11);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
INSERT INTO tt_2 VALUES ("new text 15", 15);
|
||||
BEGIN;
|
||||
INSERT INTO nt_2 VALUES ("new text 12", 12), ("new text 13", 13);
|
||||
INSERT INTO nt_2 VALUES (USER(), 14), (USER(), 15);
|
||||
ERROR 23000: Duplicate entry '15' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 16", 16);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B M* M* T C" with error in M* generates in the binlog the "B M* R B M* R B T C" entries
|
||||
|
||||
INSERT INTO nt_1 VALUES ("new text 18", 18);
|
||||
INSERT INTO nt_1 VALUES ("new text 20", 20);
|
||||
BEGIN;
|
||||
INSERT INTO tt_1 VALUES (USER(), 17), (USER(), 18);
|
||||
ERROR 23000: Duplicate entry '18' for key 'PRIMARY'
|
||||
INSERT INTO tt_1 VALUES (USER(), 19), (USER(), 20);
|
||||
ERROR 23000: Duplicate entry '20' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 21", 21);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_1)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
INSERT INTO tt_2 VALUES ("new text 23", 23);
|
||||
INSERT INTO tt_2 VALUES ("new text 25", 25);
|
||||
BEGIN;
|
||||
INSERT INTO nt_2 VALUES (USER(), 22), (USER(), 23);
|
||||
ERROR 23000: Duplicate entry '23' for key 'PRIMARY'
|
||||
INSERT INTO nt_2 VALUES (USER(), 24), (USER(), 25);
|
||||
ERROR 23000: Duplicate entry '25' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 26", 26);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B T INSERT M...SELECT* C" with an error in INSERT M...SELECT* generates
|
||||
*** in the binlog the following entries: "Nothing".
|
||||
*** There is a bug in that will be fixed after WL#2687. Please, check BUG#47175 for further details.
|
||||
|
||||
TRUNCATE TABLE nt_2;
|
||||
TRUNCATE TABLE tt_2;
|
||||
INSERT INTO tt_2 VALUES ("new text 7", 7);
|
||||
BEGIN;
|
||||
INSERT INTO tt_2 VALUES ("new text 27", 27);
|
||||
INSERT INTO nt_2(a, b) SELECT USER(), b FROM nt_1;
|
||||
ERROR 23000: Duplicate entry '7' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES ("new text 28", 28);
|
||||
ROLLBACK;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_2
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_2
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B INSERT M..SELECT* C" with an error in INSERT M...SELECT* generates
|
||||
*** in the binlog the following entries: "B INSERT M..SELECT* R".
|
||||
|
||||
TRUNCATE TABLE nt_2;
|
||||
TRUNCATE TABLE tt_2;
|
||||
INSERT INTO tt_2 VALUES ("new text 7", 7);
|
||||
BEGIN;
|
||||
INSERT INTO nt_2(a, b) SELECT USER(), b FROM nt_1;
|
||||
ERROR 23000: Duplicate entry '7' for key 'PRIMARY'
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_2
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_2
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
|
||||
|
||||
|
||||
*** "B N N T C" generates in the binlog the "B N C B N C B T C" entries
|
||||
|
||||
TRUNCATE TABLE nt_1;
|
||||
TRUNCATE TABLE tt_2;
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 1);
|
||||
INSERT INTO nt_1 VALUES (USER(), 2);
|
||||
INSERT INTO tt_2 VALUES (USER(), 3);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE nt_1
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE TABLE tt_2
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B N N T R" generates in the binlog the "B N C B N C B T R" entries
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 4);
|
||||
INSERT INTO nt_1 VALUES (USER(), 5);
|
||||
INSERT INTO tt_2 VALUES (USER(), 6);
|
||||
ROLLBACK;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
|
||||
|
||||
|
||||
*** "B N* N* T C" with error in N* generates in the binlog the "B N R B N R B T C" entries
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 7), (USER(), 1);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
INSERT INTO nt_1 VALUES (USER(), 8), (USER(), 1);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES (USER(), 9);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B N* N* T R" with error in N* generates in the binlog the "B N R B N R B T R" entries
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 10), (USER(), 1);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
INSERT INTO nt_1 VALUES (USER(), 11), (USER(), 1);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
INSERT INTO tt_2 VALUES (USER(), 12);
|
||||
ROLLBACK;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
|
||||
|
||||
|
||||
*** "B N N T N T C" generates in the binlog the "B N C B N C B T N T C" entries
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 13);
|
||||
INSERT INTO nt_1 VALUES (USER(), 14);
|
||||
INSERT INTO tt_2 VALUES (USER(), 15);
|
||||
INSERT INTO nt_1 VALUES (USER(), 16);
|
||||
INSERT INTO tt_2 VALUES (USER(), 17);
|
||||
COMMIT;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
|
||||
|
||||
|
||||
*** "B N N T N T R" generates in the binlog the "B N C B N C B T N T R" entries
|
||||
|
||||
BEGIN;
|
||||
INSERT INTO nt_1 VALUES (USER(), 18);
|
||||
INSERT INTO nt_1 VALUES (USER(), 19);
|
||||
INSERT INTO tt_2 VALUES (USER(), 20);
|
||||
INSERT INTO nt_1 VALUES (USER(), 21);
|
||||
INSERT INTO tt_2 VALUES (USER(), 22);
|
||||
ROLLBACK;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.nt_1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.tt_2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
###################################################################################
|
||||
# CLEAN
|
||||
###################################################################################
|
||||
DROP TABLE tt_1;
|
||||
DROP TABLE tt_2;
|
||||
DROP TABLE nt_1;
|
||||
DROP TABLE nt_2;
|
@ -9,7 +9,7 @@ drop table if exists t1;
|
||||
create table t1 (a int) engine=innodb;
|
||||
show status like "binlog_cache_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_use 1
|
||||
Binlog_cache_use 2
|
||||
show status like "binlog_cache_disk_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_disk_use 1
|
||||
@ -18,7 +18,7 @@ delete from t1;
|
||||
commit;
|
||||
show status like "binlog_cache_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_use 2
|
||||
Binlog_cache_use 4
|
||||
show status like "binlog_cache_disk_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_disk_use 1
|
||||
|
@ -11,7 +11,7 @@ Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
|
@ -1,3 +1,4 @@
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
drop table if exists t1, t2;
|
||||
create table t1 (a int) engine=innodb;
|
||||
create table t2 (a int) engine=myisam;
|
||||
@ -9,10 +10,12 @@ commit;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
@ -26,11 +29,9 @@ Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
@ -46,13 +47,15 @@ commit;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # use `test`; savepoint my_savepoint
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # use `test`; rollback to savepoint my_savepoint
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
delete from t1;
|
||||
@ -75,13 +78,15 @@ a
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # use `test`; savepoint my_savepoint
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # use `test`; rollback to savepoint my_savepoint
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
@ -101,11 +106,9 @@ get_lock("a",10)
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
@ -389,9 +392,7 @@ master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE table t2
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
@ -432,19 +433,8 @@ select get_lock("a",10);
|
||||
get_lock("a",10)
|
||||
1
|
||||
flush logs;
|
||||
select
|
||||
(@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
|
||||
is not null;
|
||||
(@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
|
||||
is not null
|
||||
1
|
||||
select
|
||||
@a like "%#%error_code=0%ROLLBACK\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" OR
|
||||
@a like "%#%error_code=0%ROLLBACK\r\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%",
|
||||
@a not like "%#%error_code=%error_code=%";
|
||||
@a like "%#%error_code=0%ROLLBACK\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" OR
|
||||
@a like "%#%error_code=0%ROLLBACK\r\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" @a not like "%#%error_code=%error_code=%"
|
||||
1 1
|
||||
This does not matter in ROW mode as the rolled back changes do not contain transactional changes as these
|
||||
were previously flushed upon committing/rolling back each statement.
|
||||
drop table t1, t2;
|
||||
create temporary table tt (a int unique);
|
||||
create table ti (a int) engine=innodb;
|
||||
@ -461,12 +451,6 @@ count(*)
|
||||
2
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.ti)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.ti)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
select count(*) from ti /* zero */;
|
||||
count(*)
|
||||
0
|
||||
@ -484,6 +468,8 @@ insert into ti values (2) /* to make the dup error in the following */;
|
||||
insert into tt select * from ti /* one affected and error */;
|
||||
ERROR 23000: Duplicate entry '2' for key 'a'
|
||||
rollback;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
select count(*) from ti /* zero */;
|
||||
@ -517,7 +503,7 @@ master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
/* only (!) with fixes for #23333 will show there is the query */;
|
||||
select count(*) from t1 /* must be 3 */;
|
||||
count(*)
|
||||
@ -559,10 +545,9 @@ ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
/* the output must denote there is the query */;
|
||||
select count(*) from t1 /* must be 1 */;
|
||||
count(*)
|
||||
@ -576,11 +561,9 @@ ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
/* the output must denote there is the query */;
|
||||
select count(*) from t1 /* must be 2 */;
|
||||
count(*)
|
||||
@ -598,7 +581,7 @@ master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Update_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
/* the output must denote there is the query */;
|
||||
select count(*) from t1 /* must be 2 */;
|
||||
count(*)
|
||||
@ -613,10 +596,9 @@ ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t4)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
/* the output must denote there is the query */;
|
||||
select count(*) from t1 /* must be 4 */;
|
||||
count(*)
|
||||
@ -646,11 +628,10 @@ ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t3)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
/* the output must denote there is the query */;
|
||||
select count(*) from t1 /* must be 1 */;
|
||||
count(*)
|
||||
@ -669,12 +650,9 @@ ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Delete_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Delete_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
/* the output must denote there is the query */;
|
||||
select count(*) from t1 /* must be 1 */;
|
||||
count(*)
|
||||
@ -694,12 +672,9 @@ count(*)
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t4)
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
/* the output must denote there is the query */;
|
||||
drop trigger trg_del_t2;
|
||||
drop table t1,t2,t3,t4,t5;
|
||||
@ -720,12 +695,6 @@ count(*)
|
||||
2
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.ti)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Table_map # # table_id: # (test.ti)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
select count(*) from ti /* zero */;
|
||||
count(*)
|
||||
0
|
||||
@ -743,6 +712,8 @@ insert into ti values (2) /* to make the dup error in the following */;
|
||||
insert into tt select * from ti /* one affected and error */;
|
||||
ERROR 23000: Duplicate entry '2' for key 'a'
|
||||
rollback;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
select count(*) from ti /* zero */;
|
||||
@ -772,8 +743,10 @@ insert into t2 values (bug27417(2));
|
||||
ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=3
|
||||
master-bin.000001 # Query # # use `test`; insert into t2 values (bug27417(2))
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
select count(*) from t1 /* must be 3 */;
|
||||
count(*)
|
||||
3
|
||||
@ -787,8 +760,10 @@ count(*)
|
||||
2
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=4
|
||||
master-bin.000001 # Query # # use `test`; delete from t2 where a=bug27417(3)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
select count(*) from t1 /* must be 5 */;
|
||||
count(*)
|
||||
5
|
||||
@ -809,10 +784,6 @@ insert into t2 values (bug27417(1));
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=1
|
||||
master-bin.000001 # Query # # use `test`; insert into t2 values (bug27417(1))
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
select count(*) from t1 /* must be 1 */;
|
||||
count(*)
|
||||
1
|
||||
@ -824,10 +795,6 @@ insert into t2 select bug27417(1) union select bug27417(2);
|
||||
ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=2
|
||||
master-bin.000001 # Query # # use `test`; insert into t2 select bug27417(1) union select bug27417(2)
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
select count(*) from t1 /* must be 2 */;
|
||||
count(*)
|
||||
2
|
||||
@ -838,8 +805,10 @@ update t3 set b=b+bug27417(1);
|
||||
ERROR 23000: Duplicate entry '4' for key 'b'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=4
|
||||
master-bin.000001 # Query # # use `test`; update t3 set b=b+bug27417(1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
select count(*) from t1 /* must be 2 */;
|
||||
count(*)
|
||||
2
|
||||
@ -852,10 +821,6 @@ UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */;
|
||||
ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=6
|
||||
master-bin.000001 # Query # # use `test`; UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
select count(*) from t1 /* must be 4 */;
|
||||
count(*)
|
||||
4
|
||||
@ -883,10 +848,6 @@ delete from t2;
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=9
|
||||
master-bin.000001 # Query # # use `test`; delete from t2
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
select count(*) from t1 /* must be 1 */;
|
||||
count(*)
|
||||
1
|
||||
@ -903,9 +864,6 @@ delete t2.* from t2,t5 where t2.a=t5.a + 1;
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; delete t2.* from t2,t5 where t2.a=t5.a + 1
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
select count(*) from t1 /* must be 1 */;
|
||||
count(*)
|
||||
1
|
||||
@ -923,14 +881,6 @@ count(*)
|
||||
2
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=10
|
||||
master-bin.000001 # User var # # @`b`=_latin1 0x3135 COLLATE latin1_swedish_ci
|
||||
master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=#
|
||||
master-bin.000001 # Intvar # # INSERT_ID=10
|
||||
master-bin.000001 # User var # # @`b`=_latin1 0x3135 COLLATE latin1_swedish_ci
|
||||
master-bin.000001 # Execute_load_query # # use `test`; LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE `t4` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' (a, @b) SET b=((@b) + `bug27417`(2)) ;file_id=#
|
||||
master-bin.000001 # Query # # ROLLBACK
|
||||
drop trigger trg_del_t2;
|
||||
drop table t1,t2,t3,t4,t5;
|
||||
drop function bug27417;
|
||||
|
@ -5,14 +5,27 @@ insert delayed into t1 values (300);
|
||||
FLUSH TABLES;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `mtr`; INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT' COLLATE 'latin1_swedish_ci'))
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; create table t1 (a int not null auto_increment, primary key (a)) engine=myisam
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert delayed into t1 values (207)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=208
|
||||
master-bin.000001 # Query # # use `test`; insert delayed into t1 values (null)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert delayed into t1 values (300)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; FLUSH TABLES
|
||||
insert delayed into t1 values (null),(null),(null),(null);
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses INSERT DELAYED. This is unsafe because the time when rows are inserted cannot be predicted.
|
||||
insert delayed into t1 values (null),(null),(400),(null);
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses INSERT DELAYED. This is unsafe because the time when rows are inserted cannot be predicted.
|
||||
select * from t1;
|
||||
a
|
||||
207
|
||||
|
@ -592,8 +592,10 @@ show binlog events from 0;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 4 Format_desc 1 107 Server version, Binlog ver: 4
|
||||
master-bin.000001 107 Query 1 228 use `test`; create table t1 (a bigint unsigned, b bigint(20) unsigned)
|
||||
master-bin.000001 228 Query 1 352 use `test`; insert into t1 values (9999999999999999,14632475938453979136)
|
||||
master-bin.000001 352 Query 1 428 use `test`; drop table t1
|
||||
master-bin.000001 228 Query 1 296 BEGIN
|
||||
master-bin.000001 296 Query 1 420 use `test`; insert into t1 values (9999999999999999,14632475938453979136)
|
||||
master-bin.000001 420 Query 1 489 COMMIT
|
||||
master-bin.000001 489 Query 1 565 use `test`; drop table t1
|
||||
reset master;
|
||||
CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
USE bug39182;
|
||||
@ -699,16 +701,24 @@ use test;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; create table t1 (id tinyint auto_increment primary key)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=127
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values(null)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; drop table t1
|
||||
master-bin.000001 # Query # # use `test`; create table t1 (a int)
|
||||
master-bin.000001 # Query # # use `test`; create table if not exists t2 select * from t1
|
||||
master-bin.000001 # Query # # use `test`; create temporary table tt1 (a int)
|
||||
master-bin.000001 # Query # # use `test`; create table if not exists t3 like tt1
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `mysql`; INSERT INTO user SET host='localhost', user='@#@', password=password('Just a test')
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `mysql`; UPDATE user SET password=password('Another password') WHERE host='localhost' AND user='@#@'
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `mysql`; DELETE FROM user WHERE host='localhost' AND user='@#@'
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
drop table t1,t2,t3,tt1;
|
||||
create table t1 (a int not null auto_increment, primary key (a)) engine=myisam;
|
||||
insert delayed into t1 values (207);
|
||||
@ -718,16 +728,24 @@ FLUSH TABLES;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; create table t1 (id tinyint auto_increment primary key)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=127
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values(null)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; drop table t1
|
||||
master-bin.000001 # Query # # use `test`; create table t1 (a int)
|
||||
master-bin.000001 # Query # # use `test`; create table if not exists t2 select * from t1
|
||||
master-bin.000001 # Query # # use `test`; create temporary table tt1 (a int)
|
||||
master-bin.000001 # Query # # use `test`; create table if not exists t3 like tt1
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `mysql`; INSERT INTO user SET host='localhost', user='@#@', password=password('Just a test')
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `mysql`; UPDATE user SET password=password('Another password') WHERE host='localhost' AND user='@#@'
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `mysql`; DELETE FROM user WHERE host='localhost' AND user='@#@'
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; drop table t1,t2,t3,tt1
|
||||
master-bin.000001 # Query # # use `test`; create table t1 (a int not null auto_increment, primary key (a)) engine=myisam
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
@ -799,7 +817,9 @@ SHOW BINLOG EVENTS;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
# # Format_desc 1 # Server ver: #, Binlog ver: #
|
||||
# # Query 1 # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY)
|
||||
# # Query 1 # BEGIN
|
||||
# # Query 1 # use `test`; INSERT INTO t1 VALUES (1)
|
||||
# # Query 1 # COMMIT
|
||||
# # Query 1 # BEGIN
|
||||
# # Table_map 1 # table_id: # (test.t1)
|
||||
# # Write_rows 1 # table_id: # flags: STMT_END_F
|
||||
|
@ -1,3 +1,4 @@
|
||||
CALL mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
drop table if exists t1,t2;
|
||||
CREATE TABLE t1 (
|
||||
Period smallint(4) unsigned zerofill DEFAULT '0000' NOT NULL,
|
||||
|
@ -5,15 +5,15 @@ reset master;
|
||||
insert into t2 values (@v);
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # User var # # @`v`=_ucs2 0x006100620063 COLLATE ucs2_general_ci
|
||||
master-bin.000001 # Query # # use `test`; insert into t2 values (@v)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
flush logs;
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`/*!*/;
|
||||
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/*!*/;
|
||||
@ -23,8 +23,16 @@ 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/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=10000/*!*/;
|
||||
insert into t2 values (@v)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=10000/*!*/;
|
||||
COMMIT
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
|
@ -25,11 +25,11 @@ use b42829;
|
||||
### binlog-do-db is not filtering used database
|
||||
BEGIN;
|
||||
INSERT INTO t2 VALUES (1,2), (1,3), (1,4);
|
||||
ERROR HY000: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
|
||||
ERROR HY000: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
|
||||
UPDATE b42829_filtered.t1 ft1, b42829.t1 nft1 SET ft1.x=1, nft1.x=2;
|
||||
ERROR HY000: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
|
||||
ERROR HY000: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
|
||||
INSERT INTO t1 SELECT * FROM t2;
|
||||
ERROR HY000: Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'
|
||||
ERROR HY000: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
|
||||
COMMIT;
|
||||
### assertion: filtered events did not make into the binlog
|
||||
show binlog events from <binlog_start>;
|
||||
|
@ -9,7 +9,7 @@ drop table if exists t1;
|
||||
create table t1 (a int) engine=innodb;
|
||||
show status like "binlog_cache_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_use 1
|
||||
Binlog_cache_use 2
|
||||
show status like "binlog_cache_disk_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_disk_use 1
|
||||
@ -18,7 +18,7 @@ delete from t1;
|
||||
commit;
|
||||
show status like "binlog_cache_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_use 2
|
||||
Binlog_cache_use 4
|
||||
show status like "binlog_cache_disk_use";
|
||||
Variable_name Value
|
||||
Binlog_cache_disk_use 1
|
||||
|
@ -8,7 +8,9 @@ insert into t1 select * from t2;
|
||||
ERROR 23000: Duplicate entry '2' for key 'a'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 select * from t2
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
|
@ -1,4 +1,5 @@
|
||||
CALL mtr.add_suppression("Statement may not be safe to log in statement format.");
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
drop table if exists t1, t2;
|
||||
create table t1 (a int) engine=innodb;
|
||||
create table t2 (a int) engine=myisam;
|
||||
@ -6,6 +7,8 @@ reset master;
|
||||
begin;
|
||||
insert into t1 values(1);
|
||||
insert into t2 select * from t1;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
commit;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
@ -19,6 +22,8 @@ reset master;
|
||||
begin;
|
||||
insert into t1 values(2);
|
||||
insert into t2 select * from t1;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
rollback;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
@ -36,6 +41,8 @@ insert into t1 values(3);
|
||||
savepoint my_savepoint;
|
||||
insert into t1 values(4);
|
||||
insert into t2 select * from t1;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
rollback to savepoint my_savepoint;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
@ -57,6 +64,8 @@ insert into t1 values(5);
|
||||
savepoint my_savepoint;
|
||||
insert into t1 values(6);
|
||||
insert into t2 select * from t1;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
rollback to savepoint my_savepoint;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
@ -85,6 +94,8 @@ get_lock("a",10)
|
||||
begin;
|
||||
insert into t1 values(8);
|
||||
insert into t2 select * from t1;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
select get_lock("a",10);
|
||||
get_lock("a",10)
|
||||
1
|
||||
@ -99,24 +110,32 @@ delete from t2;
|
||||
reset master;
|
||||
insert into t1 values(9);
|
||||
insert into t2 select * from t1;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values(9)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t2 select * from t1
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
insert into t1 values(10);
|
||||
begin;
|
||||
insert into t2 select * from t1;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values(10)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t2 select * from t1
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
insert into t1 values(11);
|
||||
commit;
|
||||
show binlog events from <binlog_start>;
|
||||
@ -124,7 +143,9 @@ Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values(10)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t2 select * from t1
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values(11)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
@ -226,7 +247,7 @@ insert t0 select * from t1;
|
||||
set autocommit=1;
|
||||
insert into t0 select GET_LOCK("lock1",null);
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses a system function whose value may differ on slave.
|
||||
set autocommit=0;
|
||||
create table t2 (n int) engine=innodb;
|
||||
insert into t2 values (3);
|
||||
@ -249,17 +270,29 @@ master-bin.000001 # Query # # use `test`; alter table t2 engine=MyISAM
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values (1)
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t2 values (20)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; drop table t1,t2
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; create temporary table ti (a int) engine=innodb
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into ti values(1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; create temporary table t1 (a int) engine=myisam
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert t1 values (1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; create table t0 (n int)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert t0 select * from t1
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t0 select GET_LOCK("lock1",null)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; create table t2 (n int) engine=innodb
|
||||
master-bin.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `t1`,`ti`
|
||||
do release_lock("lock1");
|
||||
@ -343,24 +376,42 @@ a b
|
||||
DROP TABLE t1,t2;
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (1,1),(1,2)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; DROP TABLE if exists t2
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (3,3)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS t2
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (a int, b int, primary key (a)) engine=innodb
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4,4)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4,4)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE table t2
|
||||
master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (5,5)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; DROP TABLE t2
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (6,6)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a)) engine=innodb
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (7,7)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (8,8)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (9,9)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE table t2
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 values (10,10)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t2 values (100,100)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
@ -374,6 +425,8 @@ get_lock("a",10)
|
||||
begin;
|
||||
insert into t1 values(8);
|
||||
insert into t2 select * from t1;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
select get_lock("a",10);
|
||||
get_lock("a",10)
|
||||
1
|
||||
@ -399,6 +452,8 @@ begin;
|
||||
insert into ti values (1);
|
||||
insert into ti values (2) ;
|
||||
insert into tt select * from ti;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
rollback;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
@ -416,6 +471,8 @@ select count(*) from ti /* zero */;
|
||||
count(*)
|
||||
0
|
||||
insert into ti select * from tt;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
select * from ti /* that is what slave would miss - a bug */;
|
||||
a
|
||||
1
|
||||
@ -442,6 +499,8 @@ select count(*) from ti /* zero */;
|
||||
count(*)
|
||||
0
|
||||
insert into ti select * from tt;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
select * from tt /* that is what otherwise slave missed - the bug */;
|
||||
a
|
||||
1
|
||||
@ -460,17 +519,19 @@ end|
|
||||
reset master;
|
||||
insert into t2 values (bug27417(1));
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement updates two AUTO_INCREMENT columns. This is unsafe because the generated value cannot be predicted by slave.
|
||||
insert into t2 select bug27417(2);
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement updates two AUTO_INCREMENT columns. This is unsafe because the generated value cannot be predicted by slave.
|
||||
reset master;
|
||||
insert into t2 values (bug27417(2));
|
||||
ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=3
|
||||
master-bin.000001 # Query # # use `test`; insert into t2 values (bug27417(2))
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
/* only (!) with fixes for #23333 will show there is the query */;
|
||||
select count(*) from t1 /* must be 3 */;
|
||||
count(*)
|
||||
@ -481,14 +542,16 @@ count(*)
|
||||
2
|
||||
delete from t2 where a=bug27417(3);
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement updates two AUTO_INCREMENT columns. This is unsafe because the generated value cannot be predicted by slave.
|
||||
select count(*) from t2 /* nothing got deleted */;
|
||||
count(*)
|
||||
2
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=4
|
||||
master-bin.000001 # Query # # use `test`; delete from t2 where a=bug27417(3)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
/* the query must be in regardless of #23333 */;
|
||||
select count(*) from t1 /* must be 5 */;
|
||||
count(*)
|
||||
@ -496,7 +559,7 @@ count(*)
|
||||
delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */;
|
||||
affected rows: 0
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement updates two AUTO_INCREMENT columns. This is unsafe because the generated value cannot be predicted by slave.
|
||||
select count(*) from t1 /* must be 7 */;
|
||||
count(*)
|
||||
7
|
||||
@ -543,8 +606,10 @@ update t3 set b=b+bug27417(1);
|
||||
ERROR 23000: Duplicate entry '4' for key 'b'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=4
|
||||
master-bin.000001 # Query # # use `test`; update t3 set b=b+bug27417(1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
/* the output must denote there is the query */;
|
||||
select count(*) from t1 /* must be 2 */;
|
||||
count(*)
|
||||
@ -651,6 +716,8 @@ begin;
|
||||
insert into ti values (1);
|
||||
insert into ti values (2) ;
|
||||
insert into tt select * from ti;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
rollback;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
@ -668,6 +735,8 @@ select count(*) from ti /* zero */;
|
||||
count(*)
|
||||
0
|
||||
insert into ti select * from tt;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
select * from ti /* that is what slave would miss - bug#28960 */;
|
||||
a
|
||||
1
|
||||
@ -694,6 +763,8 @@ select count(*) from ti /* zero */;
|
||||
count(*)
|
||||
0
|
||||
insert into ti select * from tt;
|
||||
Warnings:
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Non-transactional reads or writes are unsafe if they occur after transactional reads or writes inside a transaction.
|
||||
select * from tt /* that is what otherwise slave missed - the bug */;
|
||||
a
|
||||
1
|
||||
@ -712,17 +783,19 @@ end|
|
||||
reset master;
|
||||
insert into t2 values (bug27417(1));
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement updates two AUTO_INCREMENT columns. This is unsafe because the generated value cannot be predicted by slave.
|
||||
insert into t2 select bug27417(2);
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement updates two AUTO_INCREMENT columns. This is unsafe because the generated value cannot be predicted by slave.
|
||||
reset master;
|
||||
insert into t2 values (bug27417(2));
|
||||
ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=3
|
||||
master-bin.000001 # Query # # use `test`; insert into t2 values (bug27417(2))
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
select count(*) from t1 /* must be 3 */;
|
||||
count(*)
|
||||
3
|
||||
@ -732,21 +805,23 @@ count(*)
|
||||
2
|
||||
delete from t2 where a=bug27417(3);
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement updates two AUTO_INCREMENT columns. This is unsafe because the generated value cannot be predicted by slave.
|
||||
select count(*) from t2 /* nothing got deleted */;
|
||||
count(*)
|
||||
2
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=4
|
||||
master-bin.000001 # Query # # use `test`; delete from t2 where a=bug27417(3)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
select count(*) from t1 /* must be 5 */;
|
||||
count(*)
|
||||
5
|
||||
delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */;
|
||||
affected rows: 0
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement updates two AUTO_INCREMENT columns. This is unsafe because the generated value cannot be predicted by slave.
|
||||
select count(*) from t1 /* must be 7 */;
|
||||
count(*)
|
||||
7
|
||||
@ -791,8 +866,10 @@ update t3 set b=b+bug27417(1);
|
||||
ERROR 23000: Duplicate entry '4' for key 'b'
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Intvar # # INSERT_ID=4
|
||||
master-bin.000001 # Query # # use `test`; update t3 set b=b+bug27417(1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
select count(*) from t1 /* must be 2 */;
|
||||
count(*)
|
||||
2
|
||||
|
@ -11,12 +11,18 @@ prepare s from "insert into t1 select 100 limit ?";
|
||||
set @a=100;
|
||||
execute s using @a;
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
|
||||
show binlog events from <binlog_start>;
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
master-bin.000001 # Query # # use `test`; create table t1 (a int)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # User var # # @`a`=98
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values (@a),(98)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 values (99)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; insert into t1 select 100 limit 100
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
drop table t1;
|
||||
|
@ -1,4 +1,4 @@
|
||||
CALL mtr.add_suppression("Statement may not be safe to log in statement format.");
|
||||
CALL mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT");
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
set @saved_global_binlog_format = @@global.binlog_format;
|
||||
@ -31,7 +31,7 @@ RELEASE_LOCK('Bug#34306')
|
||||
1
|
||||
# con2
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses a system function whose value may differ on slave.
|
||||
SELECT RELEASE_LOCK('Bug#34306');
|
||||
RELEASE_LOCK('Bug#34306')
|
||||
1
|
||||
@ -63,11 +63,21 @@ master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS t1
|
||||
master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS t2
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a INT)
|
||||
master-bin.000001 # Query # # use `test`; CREATE TABLE t2 LIKE t1
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES(1)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t2 VALUES(2)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1 SELECT * FROM t2 WHERE GET_LOCK('Bug#34306', 120)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t2 VALUES (3)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t2 VALUES (4)
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
|
@ -1,13 +1,15 @@
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted. .*");
|
||||
call mtr.add_suppression("Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses a system function whose value may differ on slave. .*");
|
||||
### NOT filtered database => assertion: warnings ARE shown
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a int, b int, primary key (a));
|
||||
INSERT INTO t1 VALUES (1,2), (2,3);
|
||||
UPDATE t1 SET b='4' WHERE a=1 LIMIT 1;
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
|
||||
UPDATE t1 SET b='5' WHERE a=2 ORDER BY a LIMIT 1;
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted.
|
||||
DROP TABLE t1;
|
||||
### NOT filtered database => assertion: binlog disabled and warnings ARE NOT shown
|
||||
SET SQL_LOG_BIN= 0;
|
||||
@ -38,11 +40,11 @@ CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(10));
|
||||
SET GLOBAL LOG_WARNINGS = 0;
|
||||
INSERT INTO t1 VALUES(UUID(), 'Bug#46265');
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses a system function whose value may differ on slave.
|
||||
SET GLOBAL LOG_WARNINGS = 1;
|
||||
INSERT INTO t1 VALUES(UUID(), 'Bug#46265');
|
||||
Warnings:
|
||||
Note 1592 Statement may not be safe to log in statement format.
|
||||
Note 1592 Unsafe statement binlogged in statement format since BINLOG_FORMAT = STATEMENT. Reason for unsafeness: Statement uses a system function whose value may differ on slave.
|
||||
DROP TABLE t1;
|
||||
SET GLOBAL log_warnings = @old_log_warnings;
|
||||
# Count the number of times the "Unsafe" message was printed
|
||||
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user