Merge pilot.mysql.com:/data/msvensson/mysql/mysql-5.1
into pilot.mysql.com:/data/msvensson/mysql/mysql-5.1-rpl
This commit is contained in:
commit
69a755d6a0
@ -1887,6 +1887,18 @@ void var_set_errno(int sql_errno)
|
||||
var_set_int("$mysql_errno", sql_errno);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Update $mysql_get_server_version variable with version
|
||||
of the currently connected server
|
||||
*/
|
||||
|
||||
void var_set_mysql_get_server_version(MYSQL* mysql)
|
||||
{
|
||||
var_set_int("$mysql_get_server_version", mysql_get_server_version(mysql));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Set variable from the result of a query
|
||||
|
||||
@ -2196,7 +2208,7 @@ int open_file(const char *name)
|
||||
if (!(cur_file->file = my_fopen(buff, O_RDONLY | FILE_BINARY, MYF(0))))
|
||||
{
|
||||
cur_file--;
|
||||
die("Could not open file '%s'", buff);
|
||||
die("Could not open '%s' for reading", buff);
|
||||
}
|
||||
cur_file->file_name= my_strdup(buff, MYF(MY_FAE));
|
||||
cur_file->lineno=1;
|
||||
@ -4016,6 +4028,10 @@ int select_connection_name(const char *name)
|
||||
|
||||
if (!(cur_con= find_connection_by_name(name)))
|
||||
die("connection '%s' not found in connection pool", name);
|
||||
|
||||
/* Update $mysql_get_server_version to that of current connection */
|
||||
var_set_mysql_get_server_version(&cur_con->mysql);
|
||||
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
@ -4403,6 +4419,9 @@ void do_connect(struct st_command *command)
|
||||
next_con++; /* if we used the next_con slot, advance the pointer */
|
||||
}
|
||||
|
||||
/* Update $mysql_get_server_version to that of current connection */
|
||||
var_set_mysql_get_server_version(&cur_con->mysql);
|
||||
|
||||
dynstr_free(&ds_connection_name);
|
||||
dynstr_free(&ds_host);
|
||||
dynstr_free(&ds_user);
|
||||
@ -5245,7 +5264,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||
DBUG_ASSERT(cur_file == file_stack && cur_file->file == 0);
|
||||
if (!(cur_file->file=
|
||||
my_fopen(buff, O_RDONLY | FILE_BINARY, MYF(0))))
|
||||
die("Could not open %s: errno = %d", buff, errno);
|
||||
die("Could not open '%s' for reading: errno = %d", buff, errno);
|
||||
cur_file->file_name= my_strdup(buff, MYF(MY_FAE));
|
||||
cur_file->lineno= 1;
|
||||
break;
|
||||
@ -5362,9 +5381,9 @@ void str_to_file2(const char *fname, char *str, int size, my_bool append)
|
||||
flags|= O_TRUNC;
|
||||
if ((fd= my_open(buff, flags,
|
||||
MYF(MY_WME | MY_FFNF))) < 0)
|
||||
die("Could not open %s: errno = %d", buff, errno);
|
||||
die("Could not open '%s' for writing: errno = %d", buff, errno);
|
||||
if (append && my_seek(fd, 0, SEEK_END, MYF(0)) == MY_FILEPOS_ERROR)
|
||||
die("Could not find end of file %s: errno = %d", buff, errno);
|
||||
die("Could not find end of file '%s': errno = %d", buff, errno);
|
||||
if (my_write(fd, (uchar*)str, size, MYF(MY_WME|MY_FNABP)))
|
||||
die("write failed");
|
||||
my_close(fd, MYF(0));
|
||||
@ -6928,6 +6947,9 @@ int main(int argc, char **argv)
|
||||
*/
|
||||
var_set_errno(-1);
|
||||
|
||||
/* Update $mysql_get_server_version to that of current connection */
|
||||
var_set_mysql_get_server_version(&cur_con->mysql);
|
||||
|
||||
if (opt_include)
|
||||
{
|
||||
open_file(opt_include);
|
||||
|
@ -282,6 +282,7 @@ typedef struct charset_info_st
|
||||
MY_COLLATION_HANDLER *coll;
|
||||
|
||||
} CHARSET_INFO;
|
||||
#define ILLEGAL_CHARSET_INFO_NUMBER (~0U)
|
||||
|
||||
|
||||
extern CHARSET_INFO my_charset_bin;
|
||||
|
@ -404,8 +404,10 @@ DROP TABLE t4;
|
||||
|
||||
SET collation_connection='cp932_japanese_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
SET collation_connection='cp932_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
|
||||
#
|
||||
# Bug#29333 myisam corruption with
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
-- source include/have_log_bin.inc
|
||||
-- source include/have_innodb.inc
|
||||
-- source include/have_debug.inc
|
||||
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2;
|
||||
|
@ -403,45 +403,38 @@ sync_slave_with_master;
|
||||
# added columns do not have default values#
|
||||
# Expect: Proper error message #
|
||||
###########################################
|
||||
# Commented out due to Bug #23907 Extra Slave Col is not
|
||||
# erroring on extra col with no default values.
|
||||
# Bug#22234, Bug#23907 Extra Slave Col is not
|
||||
# erroring on extra col with no default values.
|
||||
########################################################
|
||||
#--echo *** Create t9 on slave ***
|
||||
#STOP SLAVE;
|
||||
#RESET SLAVE;
|
||||
#eval CREATE TABLE t9 (a INT KEY, b BLOB, c CHAR(5),
|
||||
# d TIMESTAMP,
|
||||
# e INT DEFAULT '1')ENGINE=$engine_type;
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
eval CREATE TABLE t9 (a INT KEY, b BLOB, c CHAR(5),
|
||||
d TIMESTAMP,
|
||||
e INT NOT NULL) ENGINE=$engine_type;
|
||||
|
||||
#--echo *** Create t9 on Master ***
|
||||
#connection master;
|
||||
#eval CREATE TABLE t9 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
|
||||
# ) ENGINE=$engine_type;
|
||||
#RESET MASTER;
|
||||
--echo *** Create t9 on Master ***
|
||||
connection master;
|
||||
eval CREATE TABLE t9 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
|
||||
) ENGINE=$engine_type;
|
||||
RESET MASTER;
|
||||
|
||||
#--echo *** Start Slave ***
|
||||
#connection slave;
|
||||
#START SLAVE;
|
||||
--echo *** Start Slave ***
|
||||
connection slave;
|
||||
START SLAVE;
|
||||
|
||||
#--echo *** Master Data Insert ***
|
||||
#connection master;
|
||||
#set @b1 = 'b1b1b1b1';
|
||||
#set @b1 = concat(@b1,@b1);
|
||||
#INSERT INTO t9 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
|
||||
--echo *** Master Data Insert ***
|
||||
connection master;
|
||||
set @b1 = 'b1b1b1b1';
|
||||
set @b1 = concat(@b1,@b1);
|
||||
INSERT INTO t9 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
|
||||
|
||||
#--echo *************************************************
|
||||
#--echo ** Currently giving wrong error see bug#22234 ***
|
||||
#--echo *************************************************
|
||||
#sync_slave_with_master;
|
||||
#connection slave;
|
||||
|
||||
#--echo *** Select from T9 ***
|
||||
#--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
|
||||
#SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||
#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
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||
START SLAVE;
|
||||
|
||||
#--echo *** Drop t9 ***
|
||||
#connection master;
|
||||
|
@ -39,13 +39,6 @@ sync_with_master;
|
||||
|
||||
select * from t1;
|
||||
select * from t3;
|
||||
# We want to be sure that LOAD DATA is in the slave's binlog.
|
||||
# But we can't simply read this binlog, because as the slave has not been
|
||||
# restarted for this test, the file_id is uncertain (would cause test
|
||||
# failures). So instead, we test if the binlog looks long enough to
|
||||
# contain LOAD DATA. Since 5.0.3 we assume that binlog of 1292 is ok.
|
||||
# If LOAD DATA was not logged, the binlog would be shorter.
|
||||
show master status;
|
||||
|
||||
connection master;
|
||||
|
||||
|
@ -148,5 +148,5 @@ drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
sync_with_master;
|
||||
sync_slave_with_master;
|
||||
|
||||
|
@ -342,5 +342,6 @@ SHOW CREATE TABLE t1;
|
||||
--echo --- Do Cleanup ---
|
||||
|
||||
DROP TABLE IF EXISTS t1;
|
||||
sync_slave_with_master;
|
||||
|
||||
# End of 5.1 test case
|
||||
|
@ -341,6 +341,14 @@ drop function if exists f1;
|
||||
drop procedure if exists p_verify_status_increment;
|
||||
--enable_warnings
|
||||
|
||||
# Save binlog_format in a user variable. References to system
|
||||
# variables are "unsafe", meaning they are written as rows instead of
|
||||
# as statements to the binlog, if the loggging mode is 'mixed'. But
|
||||
# we don't want p_verify_status_increment to affect the logging mode.
|
||||
# Hence, we save binlog_format in a user variable (which is not
|
||||
# unsafe) and use that inside p_verify_status_increment.
|
||||
set @binlog_format=@@global.binlog_format;
|
||||
|
||||
set sql_mode=no_engine_substitution;
|
||||
create table t1 (a int unique);
|
||||
create table t2 (a int) engine=myisam;
|
||||
@ -367,7 +375,7 @@ begin
|
||||
where variable_name='Handler_commit' or variable_name='Handler_prepare'
|
||||
order by variable_name;
|
||||
|
||||
if @@global.binlog_format = 'ROW' then
|
||||
if @binlog_format = 'ROW' then
|
||||
set commit_inc= commit_inc_row;
|
||||
set prepare_inc= prepare_inc_row;
|
||||
else
|
||||
|
40
mysql-test/include/ctype_german.inc
Normal file
40
mysql-test/include/ctype_german.inc
Normal file
@ -0,0 +1,40 @@
|
||||
#
|
||||
# Bug #27877 incorrect german order in utf8_general_ci
|
||||
#
|
||||
# Testing if "SHARP S" is equal to "S",
|
||||
# like in latin1_german1_ci, utf8_general_ci, ucs2_general_ci
|
||||
# Or if "SHART S" is equal to "SS",
|
||||
# like in latin1_german2_ci, utf8_unicode_ci, ucs2_unicode_ci
|
||||
#
|
||||
# Also testing A-uml, O-uml, U-uml
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
# Create a table with a varchar(x) column,
|
||||
# using current values of
|
||||
# @@character_set_connection and @@collation_connection.
|
||||
#
|
||||
|
||||
create table t1 as select repeat(' ', 64) as s1;
|
||||
select collation(s1) from t1;
|
||||
delete from t1;
|
||||
|
||||
#
|
||||
# Populate data
|
||||
#
|
||||
|
||||
insert into t1 values ('a'),('ae'),(_latin1 0xE4);
|
||||
insert into t1 values ('o'),('oe'),(_latin1 0xF6);
|
||||
insert into t1 values ('s'),('ss'),(_latin1 0xDF);
|
||||
insert into t1 values ('u'),('ue'),(_latin1 0xFC);
|
||||
|
||||
#
|
||||
# Check order
|
||||
#
|
||||
select s1, hex(s1) from t1 order by s1, binary s1;
|
||||
select group_concat(s1 order by binary s1) from t1 group by s1;
|
||||
drop table t1;
|
25
mysql-test/include/ctype_like_range_f1f2.inc
Normal file
25
mysql-test/include/ctype_like_range_f1f2.inc
Normal file
@ -0,0 +1,25 @@
|
||||
#
|
||||
# Bug#32510 LIKE search fails with indexed 'eucjpms' and 'ujis' char column
|
||||
#
|
||||
# Testing my_ctype_like_range_xxx
|
||||
# (used in LIKE optimization for an indexed column)
|
||||
#
|
||||
|
||||
# Create table using @@character_set_connection and @@collation_connection
|
||||
# for the string columns.
|
||||
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
|
||||
# Check pattern (important for ucs2, utf16, utf32)
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
|
||||
--echo 3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
DROP TABLE t1;
|
122
mysql-test/include/diff_tables.inc
Normal file
122
mysql-test/include/diff_tables.inc
Normal file
@ -0,0 +1,122 @@
|
||||
# ==== Purpose ====
|
||||
#
|
||||
# Check if the two given tables (possibly residing on different
|
||||
# master/slave servers) are equal.
|
||||
#
|
||||
# ==== Usage ====
|
||||
#
|
||||
# The tables to check are given by the test language variables
|
||||
# $diff_table_1 and $diff_table_2. They must be of the
|
||||
# following form:
|
||||
#
|
||||
# [master:|slave:]database.table
|
||||
#
|
||||
# I.e., both database and table must be speicified. Optionally, you
|
||||
# can prefix the name with 'master:' (to read the table on master) or
|
||||
# with 'slave:' (to read the table on slave). If no prefix is given,
|
||||
# reads the table from the current connection. If one of these
|
||||
# variables has a prefix, both should have a prefix.
|
||||
#
|
||||
# ==== Side effects ====
|
||||
#
|
||||
# - Prints "Comparing tables $diff_table_1 and $diff_tables_2".
|
||||
#
|
||||
# - If the tables are different, prints the difference in a
|
||||
# system-specific format (unified diff if supported) and generates
|
||||
# an error.
|
||||
#
|
||||
# - If $diff_table_1 or $diff_table_2 begins with 'master:' or
|
||||
# 'slave:', it will stay connected to one of those hosts after
|
||||
# execution. The host is only guaranteed to remain unchanged if
|
||||
# none of $diff_table_1 or $diff_table_2 begins with 'master:' or
|
||||
# 'slave:'.
|
||||
#
|
||||
# ==== Bugs ====
|
||||
#
|
||||
# - It is currently not possible to use this for tables that are
|
||||
# supposed to be different, because if the files are different:
|
||||
# - 'diff' produces system-dependent output,
|
||||
# - the output includes the absolute path of the compared files,
|
||||
# - the output includes a timestamp.
|
||||
# To fix that, we'd probably have to use SQL to compute the
|
||||
# symmetric difference between the tables. I'm not sure how to do
|
||||
# that efficiently. If we implement this, it would be nice to
|
||||
# compare the table definitions too.
|
||||
#
|
||||
# - It actually compares the result of "SELECT * FROM table ORDER BY
|
||||
# col1, col2, ..., colN INTO OUTFILE 'file'". Hence, it is assumed
|
||||
# that the comparison orders for both tables are equal and that two
|
||||
# rows that are equal in the comparison order cannot differ, e.g.,
|
||||
# by character case.
|
||||
|
||||
|
||||
# ==== Save both tables to file ====
|
||||
|
||||
--echo Comparing tables $diff_table_1 and $diff_table_2
|
||||
disable_query_log;
|
||||
|
||||
--error 0,1
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/diff_table_1
|
||||
--error 0,1
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/diff_table_2
|
||||
|
||||
let $_diff_table=$diff_table_2;
|
||||
let $_diff_i=2;
|
||||
while ($_diff_i) {
|
||||
|
||||
# Parse out any leading "master:" or "slave:" from the table
|
||||
# specification and connect the appropriate server.
|
||||
let $_diff_conn_master=`SELECT SUBSTR('$_diff_table', 1, 7) = 'master:'`;
|
||||
if ($_diff_conn_master) {
|
||||
let $_diff_table=`SELECT SUBSTR('$_diff_table', 8)`;
|
||||
connection master;
|
||||
}
|
||||
let $_diff_conn_slave=`SELECT SUBSTR('$_diff_table', 1, 6) = 'slave:'`;
|
||||
if ($_diff_conn_slave) {
|
||||
let $_diff_table=`SELECT SUBSTR('$_diff_table', 7)`;
|
||||
connection slave;
|
||||
}
|
||||
|
||||
# Sanity-check the input.
|
||||
let $_diff_error= `SELECT '$_diff_table' NOT LIKE '_%._%'`;
|
||||
if ($_diff_error) {
|
||||
--echo !!!ERROR IN TEST: \$diff_table_$_diff_i='$_diff_table' is not in the form database.table
|
||||
exit;
|
||||
}
|
||||
|
||||
# We need the output files to be sorted (so that diff_files does not
|
||||
# think the files are different just because they are differently
|
||||
# ordered). To this end, we first generate a query that sorts the
|
||||
# table by all columns. Since ORDER BY accept column indices, we
|
||||
# just generate a comma-separated list of all numbers from 1 to the
|
||||
# number of columns in the table.
|
||||
let $_diff_column_index=`SELECT MAX(ordinal_position)
|
||||
FROM information_schema.columns
|
||||
WHERE CONCAT(table_schema, '.', table_name) =
|
||||
'$_diff_table'`;
|
||||
let $_diff_column_list=$_diff_column_index;
|
||||
dec $_diff_column_index;
|
||||
while ($_diff_column_index) {
|
||||
let $_diff_column_list=$_diff_column_index, $_diff_column_list;
|
||||
dec $_diff_column_index;
|
||||
}
|
||||
|
||||
# Now that we have the comma-separated list of columns, we can write
|
||||
# the table to a file.
|
||||
eval SELECT * FROM $_diff_table ORDER BY $_diff_column_list
|
||||
INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/diff_table_$_diff_i';
|
||||
|
||||
# Do the same for $diff_table_1.
|
||||
dec $_diff_i;
|
||||
let $_diff_table=$diff_table_1;
|
||||
}
|
||||
|
||||
|
||||
# ==== Compare the generated files ====
|
||||
|
||||
diff_files $MYSQLTEST_VARDIR/tmp/diff_table_1 $MYSQLTEST_VARDIR/tmp/diff_table_2;
|
||||
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/diff_table_1
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/diff_table_2
|
||||
|
||||
enable_query_log;
|
33
mysql-test/include/wait_for_binlog_event.inc
Normal file
33
mysql-test/include/wait_for_binlog_event.inc
Normal file
@ -0,0 +1,33 @@
|
||||
# include/wait_for_binlog_event.inc
|
||||
#
|
||||
# SUMMARY
|
||||
#
|
||||
# Waits until SHOW BINLOG EVENTS has returned in last event a specified substring.
|
||||
#
|
||||
# USAGE
|
||||
#
|
||||
# let $wait_binlog_event= DROP;
|
||||
# --source include/wait_for_binlog_event.inc
|
||||
|
||||
let $_loop_count= 300;
|
||||
let $_last_event= ;
|
||||
let $_event_pos= 1;
|
||||
|
||||
while (`SELECT INSTR("$_last_event","$wait_binlog_event") = 0`)
|
||||
{
|
||||
dec $_loop_count;
|
||||
if (!$_loop_count)
|
||||
{
|
||||
SHOW BINLOG EVENTS;
|
||||
--die ERROR: failed while waiting for $wait_binlog_event in binlog
|
||||
}
|
||||
real_sleep 0.1;
|
||||
let $_event= query_get_value(SHOW BINLOG EVENTS, Info, $_event_pos);
|
||||
let $_last_event= $_event;
|
||||
while (`SELECT "$_event" != "No such row"`)
|
||||
{
|
||||
inc $_event_pos;
|
||||
let $_last_event= $_event;
|
||||
let $_event= query_get_value(SHOW BINLOG EVENTS, Info, $_event_pos);
|
||||
}
|
||||
}
|
@ -279,6 +279,12 @@ sub mtr_report_stats ($) {
|
||||
/Failed to open log/ or
|
||||
/Failed to open the existing master info file/ or
|
||||
/Forcing shutdown of [0-9]* plugins/ or
|
||||
|
||||
# Due to timing issues, it might be that this warning
|
||||
# is printed when the server shuts down and the
|
||||
# computer is loaded.
|
||||
/Forcing close of thread \d+ user: '.*?'/ or
|
||||
|
||||
/Got error [0-9]* when reading table/ or
|
||||
/Incorrect definition of table/ or
|
||||
/Incorrect information in file/ or
|
||||
@ -383,6 +389,11 @@ sub mtr_report_stats ($) {
|
||||
(/Failed to write to mysql\.\w+_log/
|
||||
)) or
|
||||
|
||||
# rpl_bug33931 has deliberate failures
|
||||
($testname eq 'rpl.rpl_bug33931' and
|
||||
(/Failed during slave.*thread initialization/
|
||||
)) or
|
||||
|
||||
# rpl_temporary has an error on slave that can be ignored
|
||||
($testname eq 'rpl.rpl_temporary' and
|
||||
(/Slave: Can\'t find record in \'user\' Error_code: 1032/
|
||||
|
@ -331,6 +331,7 @@ drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop function if exists f1;
|
||||
drop procedure if exists p_verify_status_increment;
|
||||
set @binlog_format=@@global.binlog_format;
|
||||
set sql_mode=no_engine_substitution;
|
||||
create table t1 (a int unique);
|
||||
create table t2 (a int) engine=myisam;
|
||||
@ -355,7 +356,7 @@ select variable_value
|
||||
from information_schema.session_status
|
||||
where variable_name='Handler_commit' or variable_name='Handler_prepare'
|
||||
order by variable_name;
|
||||
if @@global.binlog_format = 'ROW' then
|
||||
if @binlog_format = 'ROW' then
|
||||
set commit_inc= commit_inc_row;
|
||||
set prepare_inc= prepare_inc_row;
|
||||
else
|
||||
|
@ -124,6 +124,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET collation_connection='big5_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
@ -174,6 +191,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET NAMES big5;
|
||||
CREATE TABLE t1 (a text) character set big5;
|
||||
INSERT INTO t1 VALUES ('ùØ');
|
||||
|
@ -9809,6 +9809,23 @@ eucjpms_japanese_ci 6109
|
||||
eucjpms_japanese_ci 61
|
||||
eucjpms_japanese_ci 6120
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET collation_connection='eucjpms_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
@ -9819,6 +9836,23 @@ eucjpms_bin 6109
|
||||
eucjpms_bin 61
|
||||
eucjpms_bin 6120
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
select hex(convert(_eucjpms 0xA5FE41 using ucs2));
|
||||
hex(convert(_eucjpms 0xA5FE41 using ucs2))
|
||||
003F0041
|
||||
|
@ -124,6 +124,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET collation_connection='euckr_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
@ -174,6 +191,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET NAMES euckr;
|
||||
CREATE TABLE t1 (a text) character set euckr;
|
||||
INSERT INTO t1 VALUES (0xA2E6),(0xFEF7);
|
||||
|
@ -124,6 +124,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET collation_connection='gb2312_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
@ -174,6 +191,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET NAMES gb2312;
|
||||
CREATE TABLE t1 (a text) character set gb2312;
|
||||
INSERT INTO t1 VALUES (0xA2A1),(0xD7FE);
|
||||
|
@ -124,6 +124,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET collation_connection='gbk_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
@ -174,6 +191,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET NAMES gbk;
|
||||
CREATE TABLE t1 (a text) character set gbk;
|
||||
INSERT INTO t1 VALUES (0xA3A0),(0xA1A1);
|
||||
|
@ -326,6 +326,41 @@ latin1_german2_ci 6109
|
||||
latin1_german2_ci 61
|
||||
latin1_german2_ci 6120
|
||||
drop table t1;
|
||||
drop table if exists t1;
|
||||
create table t1 as select repeat(' ', 64) as s1;
|
||||
select collation(s1) from t1;
|
||||
collation(s1)
|
||||
latin1_german2_ci
|
||||
delete from t1;
|
||||
insert into t1 values ('a'),('ae'),(_latin1 0xE4);
|
||||
insert into t1 values ('o'),('oe'),(_latin1 0xF6);
|
||||
insert into t1 values ('s'),('ss'),(_latin1 0xDF);
|
||||
insert into t1 values ('u'),('ue'),(_latin1 0xFC);
|
||||
select s1, hex(s1) from t1 order by s1, binary s1;
|
||||
s1 hex(s1)
|
||||
a 61
|
||||
ae 6165
|
||||
ä E4
|
||||
o 6F
|
||||
oe 6F65
|
||||
ö F6
|
||||
s 73
|
||||
ss 7373
|
||||
ß DF
|
||||
u 75
|
||||
ue 7565
|
||||
ü FC
|
||||
select group_concat(s1 order by binary s1) from t1 group by s1;
|
||||
group_concat(s1 order by binary s1)
|
||||
a
|
||||
ae,ä
|
||||
o
|
||||
oe,ö
|
||||
s
|
||||
ss,ß
|
||||
u
|
||||
ue,ü
|
||||
drop table t1;
|
||||
SET NAMES latin1;
|
||||
CREATE TABLE t1 (
|
||||
col1 varchar(255) NOT NULL default ''
|
||||
|
@ -121,6 +121,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET collation_connection='sjis_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
@ -171,6 +188,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET NAMES sjis;
|
||||
SELECT HEX('佐淘 圭') FROM DUAL;
|
||||
HEX('佐淘 圭')
|
||||
|
@ -2647,6 +2647,41 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
drop table if exists t1;
|
||||
create table t1 as select repeat(' ', 64) as s1;
|
||||
select collation(s1) from t1;
|
||||
collation(s1)
|
||||
utf8_unicode_ci
|
||||
delete from t1;
|
||||
insert into t1 values ('a'),('ae'),(_latin1 0xE4);
|
||||
insert into t1 values ('o'),('oe'),(_latin1 0xF6);
|
||||
insert into t1 values ('s'),('ss'),(_latin1 0xDF);
|
||||
insert into t1 values ('u'),('ue'),(_latin1 0xFC);
|
||||
select s1, hex(s1) from t1 order by s1, binary s1;
|
||||
s1 hex(s1)
|
||||
a 61
|
||||
ä C3A4
|
||||
ae 6165
|
||||
o 6F
|
||||
ö C3B6
|
||||
oe 6F65
|
||||
s 73
|
||||
ss 7373
|
||||
ß C39F
|
||||
u 75
|
||||
ü C3BC
|
||||
ue 7565
|
||||
select group_concat(s1 order by binary s1) from t1 group by s1;
|
||||
group_concat(s1 order by binary s1)
|
||||
a,ä
|
||||
ae
|
||||
o,ö
|
||||
oe
|
||||
s
|
||||
ss,ß
|
||||
u,ü
|
||||
ue
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (id int, a varchar(30) character set utf8);
|
||||
INSERT INTO t1 VALUES (1, _ucs2 0x01310069), (2, _ucs2 0x01310131);
|
||||
INSERT INTO t1 VALUES (3, _ucs2 0x00690069), (4, _ucs2 0x01300049);
|
||||
@ -2815,5 +2850,22 @@ NULL
|
||||
NULL
|
||||
NULL
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F20025
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
set names utf8;
|
||||
End for 5.0 tests
|
||||
|
@ -613,6 +613,58 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
drop table if exists t1;
|
||||
create table t1 as select repeat(' ', 64) as s1;
|
||||
select collation(s1) from t1;
|
||||
collation(s1)
|
||||
ucs2_general_ci
|
||||
delete from t1;
|
||||
insert into t1 values ('a'),('ae'),(_latin1 0xE4);
|
||||
insert into t1 values ('o'),('oe'),(_latin1 0xF6);
|
||||
insert into t1 values ('s'),('ss'),(_latin1 0xDF);
|
||||
insert into t1 values ('u'),('ue'),(_latin1 0xFC);
|
||||
select s1, hex(s1) from t1 order by s1, binary s1;
|
||||
s1 hex(s1)
|
||||
a 0061
|
||||
ä 00E4
|
||||
ae 00610065
|
||||
o 006F
|
||||
ö 00F6
|
||||
oe 006F0065
|
||||
s 0073
|
||||
ß 00DF
|
||||
ss 00730073
|
||||
u 0075
|
||||
ü 00FC
|
||||
ue 00750065
|
||||
select group_concat(s1 order by binary s1) from t1 group by s1;
|
||||
group_concat(s1 order by binary s1)
|
||||
a,ä
|
||||
ae
|
||||
o,ö
|
||||
oe
|
||||
s,ß
|
||||
ss
|
||||
u,ü
|
||||
ue
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F20025
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET NAMES latin1;
|
||||
SET collation_connection='ucs2_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
@ -642,6 +694,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F20025
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
select hex(substr(_ucs2 0x00e400e50068,1));
|
||||
hex(substr(_ucs2 0x00e400e50068,1))
|
||||
00E400E50068
|
||||
|
@ -2257,6 +2257,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET collation_connection='ujis_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
@ -2307,6 +2324,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
select hex(convert(_ujis 0xA5FE41 using ucs2));
|
||||
hex(convert(_ujis 0xA5FE41 using ucs2))
|
||||
003F0041
|
||||
|
@ -939,6 +939,41 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
drop table if exists t1;
|
||||
create table t1 as select repeat(' ', 64) as s1;
|
||||
select collation(s1) from t1;
|
||||
collation(s1)
|
||||
utf8_general_ci
|
||||
delete from t1;
|
||||
insert into t1 values ('a'),('ae'),(_latin1 0xE4);
|
||||
insert into t1 values ('o'),('oe'),(_latin1 0xF6);
|
||||
insert into t1 values ('s'),('ss'),(_latin1 0xDF);
|
||||
insert into t1 values ('u'),('ue'),(_latin1 0xFC);
|
||||
select s1, hex(s1) from t1 order by s1, binary s1;
|
||||
s1 hex(s1)
|
||||
a 61
|
||||
ä C3A4
|
||||
ae 6165
|
||||
o 6F
|
||||
ö C3B6
|
||||
oe 6F65
|
||||
s 73
|
||||
ß C39F
|
||||
ss 7373
|
||||
u 75
|
||||
ü C3BC
|
||||
ue 7565
|
||||
select group_concat(s1 order by binary s1) from t1 group by s1;
|
||||
group_concat(s1 order by binary s1)
|
||||
a,ä
|
||||
ae
|
||||
o,ö
|
||||
oe
|
||||
s,ß
|
||||
ss
|
||||
u,ü
|
||||
ue
|
||||
drop table t1;
|
||||
SET collation_connection='utf8_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
|
@ -627,7 +627,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 336
|
||||
master-bin.000001 197
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
insert into t1 values (1,2),(3,4),(4,4);
|
||||
@ -637,7 +637,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 351
|
||||
master-bin.000001 212
|
||||
drop table t1, t2;
|
||||
set @@session.binlog_format= @sav_binlog_format;
|
||||
drop table if exists t1, t2, t3;
|
||||
|
@ -19,10 +19,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
drop table if exists t1,t2,t3,t4,t5,t03,t04
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -61,10 +65,14 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values ("Alas")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -89,10 +97,14 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values ("Alas")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -107,10 +119,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
drop table if exists t1,t2,t3,t4,t5,t03,t04
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -149,10 +165,14 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values ("Alas")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -177,10 +197,14 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values ("Alas")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -195,6 +219,10 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1108844556/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
|
||||
SET @@session.lc_time_names=0/*!*/;
|
||||
SET @@session.collation_database=DEFAULT/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1108844555/*!*/;
|
||||
@ -209,6 +237,10 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1108844556/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
|
||||
SET @@session.lc_time_names=0/*!*/;
|
||||
SET @@session.collation_database=DEFAULT/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1108844555/*!*/;
|
||||
@ -265,10 +297,14 @@ ERROR 42000: PROCEDURE test.p1 does not exist
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
CREATE DEFINER=`root`@`localhost` procedure p1()
|
||||
begin
|
||||
select 1;
|
||||
@ -311,10 +347,14 @@ flush logs;
|
||||
DELIMITER /*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a varchar(64) character set utf8)
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
|
@ -18,61 +18,39 @@ insert into t1 values(null, "f");
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Start: binlog v #, server v ## created {yymmdd} {HH:MM:SS} at startup
|
||||
ROLLBACK/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Intvar
|
||||
SET INSERT_ID=1/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
insert into t1 values(null, "a")
|
||||
/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Intvar
|
||||
SET INSERT_ID=2/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
insert into t1 values(null, "b")
|
||||
/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Intvar
|
||||
SET INSERT_ID=3/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
|
||||
SET TIMESTAMP=1579609944/*!*/;
|
||||
insert into t1 values(null, "c")
|
||||
/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Intvar
|
||||
SET INSERT_ID=4/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
|
||||
SET TIMESTAMP=1579609946/*!*/;
|
||||
insert into t1 values(null, "d")
|
||||
/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Intvar
|
||||
SET INSERT_ID=5/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Query thread_id={integer} exec_time={integer} error_code=0
|
||||
SET TIMESTAMP=1579609946/*!*/;
|
||||
insert into t1 values(null, "e")
|
||||
/*!*/;
|
||||
# at {pos}
|
||||
#{yymmdd} {HH:MM:SS} server id 1 end_log_pos {pos} Rotate to master-bin.000002 pos: {pos}
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
@ -86,10 +64,14 @@ ROLLBACK/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "a")
|
||||
/*!*/;
|
||||
SET INSERT_ID=2/*!*/;
|
||||
@ -121,10 +103,14 @@ ROLLBACK/*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609946/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "d")
|
||||
/*!*/;
|
||||
SET INSERT_ID=5/*!*/;
|
||||
@ -143,10 +129,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
@ -174,10 +164,14 @@ ROLLBACK/*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609946/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "d")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -193,10 +187,14 @@ ROLLBACK/*!*/;
|
||||
SET INSERT_ID=3/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609944/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "c")
|
||||
/*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
@ -219,10 +217,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
@ -246,10 +248,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
@ -277,10 +283,14 @@ DELIMITER /*!*/;
|
||||
SET INSERT_ID=6/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609943/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "f")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -296,10 +306,14 @@ ROLLBACK/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "a")
|
||||
/*!*/;
|
||||
SET INSERT_ID=2/*!*/;
|
||||
@ -323,10 +337,14 @@ DELIMITER /*!*/;
|
||||
SET INSERT_ID=6/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609943/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "f")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -342,10 +360,14 @@ ROLLBACK/*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609946/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "d")
|
||||
/*!*/;
|
||||
SET INSERT_ID=5/*!*/;
|
||||
@ -357,10 +379,14 @@ DELIMITER /*!*/;
|
||||
SET INSERT_ID=6/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609943/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "f")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -375,10 +401,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
@ -417,10 +447,14 @@ ROLLBACK/*!*/;
|
||||
SET INSERT_ID=3/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609944/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "c")
|
||||
/*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
@ -436,10 +470,14 @@ DELIMITER /*!*/;
|
||||
SET INSERT_ID=6/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609943/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "f")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -454,10 +492,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
@ -480,10 +522,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
@ -519,10 +565,14 @@ ROLLBACK/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "a")
|
||||
/*!*/;
|
||||
SET INSERT_ID=2/*!*/;
|
||||
@ -553,10 +603,14 @@ DELIMITER /*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609946/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "d")
|
||||
/*!*/;
|
||||
SET INSERT_ID=5/*!*/;
|
||||
@ -575,10 +629,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
@ -605,10 +663,14 @@ DELIMITER /*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609946/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "d")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -624,10 +686,14 @@ ROLLBACK/*!*/;
|
||||
SET INSERT_ID=3/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609944/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "c")
|
||||
/*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
@ -650,10 +716,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
@ -676,10 +746,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
@ -707,10 +781,14 @@ DELIMITER /*!*/;
|
||||
SET INSERT_ID=6/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609943/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "f")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -726,10 +804,14 @@ ROLLBACK/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "a")
|
||||
/*!*/;
|
||||
SET INSERT_ID=2/*!*/;
|
||||
@ -753,10 +835,14 @@ DELIMITER /*!*/;
|
||||
SET INSERT_ID=6/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609943/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "f")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -771,10 +857,14 @@ DELIMITER /*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609946/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "d")
|
||||
/*!*/;
|
||||
SET INSERT_ID=5/*!*/;
|
||||
@ -786,10 +876,14 @@ DELIMITER /*!*/;
|
||||
SET INSERT_ID=6/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609943/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "f")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -804,10 +898,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
@ -846,10 +944,14 @@ ROLLBACK/*!*/;
|
||||
SET INSERT_ID=3/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609944/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "c")
|
||||
/*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
@ -865,10 +967,14 @@ DELIMITER /*!*/;
|
||||
SET INSERT_ID=6/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609943/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t1 values(null, "f")
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -883,10 +989,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
@ -909,10 +1019,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609942/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3))
|
||||
/*!*/;
|
||||
SET INSERT_ID=1/*!*/;
|
||||
|
@ -3870,181 +3870,6 @@ UNLOCK TABLES;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
DROP TABLE t1;
|
||||
create table t1 (a text , b text);
|
||||
create table t2 (a text , b text);
|
||||
insert t1 values ("Duck, Duck", "goose");
|
||||
insert t1 values ("Duck, Duck", "pidgeon");
|
||||
insert t2 values ("We the people", "in order to perform");
|
||||
insert t2 values ("a more perfect", "union");
|
||||
select * from t1;
|
||||
a b
|
||||
Duck, Duck goose
|
||||
Duck, Duck pidgeon
|
||||
select * from t2;
|
||||
a b
|
||||
We the people in order to perform
|
||||
a more perfect union
|
||||
test.t1: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
|
||||
test.t2: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
|
||||
select * from t1;
|
||||
a b
|
||||
Duck, Duck goose
|
||||
Duck, Duck pidgeon
|
||||
Duck, Duck goose
|
||||
Duck, Duck pidgeon
|
||||
select * from t2;
|
||||
a b
|
||||
We the people in order to perform
|
||||
a more perfect union
|
||||
We the people in order to perform
|
||||
a more perfect union
|
||||
create table words(a varchar(255));
|
||||
create table words2(b varchar(255));
|
||||
select * from t1;
|
||||
a b
|
||||
Duck, Duck goose
|
||||
Duck, Duck pidgeon
|
||||
Duck, Duck goose
|
||||
Duck, Duck pidgeon
|
||||
Duck, Duck goose
|
||||
Duck, Duck pidgeon
|
||||
select * from t2;
|
||||
a b
|
||||
We the people in order to perform
|
||||
a more perfect union
|
||||
We the people in order to perform
|
||||
a more perfect union
|
||||
We the people in order to perform
|
||||
a more perfect union
|
||||
select * from words;
|
||||
a
|
||||
Aarhus
|
||||
Aaron
|
||||
Ababa
|
||||
aback
|
||||
abaft
|
||||
abandon
|
||||
abandoned
|
||||
abandoning
|
||||
abandonment
|
||||
abandons
|
||||
Aarhus
|
||||
Aaron
|
||||
Ababa
|
||||
aback
|
||||
abaft
|
||||
abandon
|
||||
abandoned
|
||||
abandoning
|
||||
abandonment
|
||||
abandons
|
||||
abase
|
||||
abased
|
||||
abasement
|
||||
abasements
|
||||
abases
|
||||
abash
|
||||
abashed
|
||||
abashes
|
||||
abashing
|
||||
abasing
|
||||
abate
|
||||
abated
|
||||
abatement
|
||||
abatements
|
||||
abater
|
||||
abates
|
||||
abating
|
||||
Abba
|
||||
abbe
|
||||
abbey
|
||||
abbeys
|
||||
abbot
|
||||
abbots
|
||||
Abbott
|
||||
abbreviate
|
||||
abbreviated
|
||||
abbreviates
|
||||
abbreviating
|
||||
abbreviation
|
||||
abbreviations
|
||||
Abby
|
||||
abdomen
|
||||
abdomens
|
||||
abdominal
|
||||
abduct
|
||||
abducted
|
||||
abduction
|
||||
abductions
|
||||
abductor
|
||||
abductors
|
||||
abducts
|
||||
Abe
|
||||
abed
|
||||
Abel
|
||||
Abelian
|
||||
Abelson
|
||||
Aberdeen
|
||||
Abernathy
|
||||
aberrant
|
||||
aberration
|
||||
select * from words2;
|
||||
b
|
||||
abase
|
||||
abased
|
||||
abasement
|
||||
abasements
|
||||
abases
|
||||
abash
|
||||
abashed
|
||||
abashes
|
||||
abashing
|
||||
abasing
|
||||
abate
|
||||
abated
|
||||
abatement
|
||||
abatements
|
||||
abater
|
||||
abates
|
||||
abating
|
||||
Abba
|
||||
abbe
|
||||
abbey
|
||||
abbeys
|
||||
abbot
|
||||
abbots
|
||||
Abbott
|
||||
abbreviate
|
||||
abbreviated
|
||||
abbreviates
|
||||
abbreviating
|
||||
abbreviation
|
||||
abbreviations
|
||||
Abby
|
||||
abdomen
|
||||
abdomens
|
||||
abdominal
|
||||
abduct
|
||||
abducted
|
||||
abduction
|
||||
abductions
|
||||
abductor
|
||||
abductors
|
||||
abducts
|
||||
Abe
|
||||
abed
|
||||
Abel
|
||||
Abelian
|
||||
Abelson
|
||||
Aberdeen
|
||||
Abernathy
|
||||
aberrant
|
||||
aberration
|
||||
drop table words;
|
||||
mysql-import: Error: 1146, Table 'test.words' doesn't exist, when using table: words
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table words2;
|
||||
#
|
||||
# BUG# 16853: mysqldump doesn't show events
|
||||
#
|
||||
|
@ -293,7 +293,7 @@ var5 from query that returns no row
|
||||
failing query in let
|
||||
mysqltest: At line 1: Error running query 'failing query': 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'failing query' at line 1
|
||||
mysqltest: At line 1: Missing required argument 'filename' to command 'source'
|
||||
mysqltest: At line 1: Could not open file './non_existingFile'
|
||||
mysqltest: At line 1: Could not open './non_existingFile' for reading
|
||||
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/recursive.sql": At line 1: Source directives are nesting too deep
|
||||
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/error.sql": At line 1: query 'garbage ' failed: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'garbage' at line 1
|
||||
|
||||
@ -443,7 +443,7 @@ ERROR 3D000: No database selected
|
||||
Output from mysqltest-x.inc
|
||||
Output from mysqltest-x.inc
|
||||
Output from mysqltest-x.inc
|
||||
mysqltest: Could not open ./non_existing_file.inc: errno = 2
|
||||
mysqltest: Could not open './non_existing_file.inc' for reading: errno = 2
|
||||
failing_statement;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'failing_statement' at line 1
|
||||
failing_statement;
|
||||
|
@ -21,10 +21,14 @@ 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=1, @@session.unique_checks=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/*!*/;
|
||||
INSERT INTO t1 VALUES(@`a b`)
|
||||
/*!*/;
|
||||
SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`/*!*/;
|
||||
|
17
mysql-test/r/variables-notembedded.result
Normal file
17
mysql-test/r/variables-notembedded.result
Normal file
@ -0,0 +1,17 @@
|
||||
---- Init ----
|
||||
set @my_slave_net_timeout =@@global.slave_net_timeout;
|
||||
---- Test ----
|
||||
set global slave_net_timeout=100;
|
||||
set global sql_slave_skip_counter=100;
|
||||
show variables like 'slave_compressed_protocol';
|
||||
Variable_name Value
|
||||
slave_compressed_protocol OFF
|
||||
show variables like 'slave_load_tmpdir';
|
||||
Variable_name Value
|
||||
slave_load_tmpdir SLAVE_LOAD_TMPDIR
|
||||
show variables like 'slave_skip_errors';
|
||||
Variable_name Value
|
||||
slave_skip_errors 3,100,137,643,1752
|
||||
---- Clean Up ----
|
||||
set global slave_net_timeout=default;
|
||||
set global sql_slave_skip_counter= 0;
|
@ -32,14 +32,17 @@ a
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
# at 4
|
||||
#ROLLBACK/*!*/;
|
||||
<#>ROLLBACK/*!*/;
|
||||
# at 102
|
||||
#use test/*!*/;
|
||||
<#>use test/*!*/;
|
||||
SET TIMESTAMP=1196959712/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
<#>SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
create table t1 (a int) engine= myisam
|
||||
/*!*/;
|
||||
# at 203
|
||||
|
@ -3,8 +3,8 @@ CREATE TABLE t1b (b INT, c INT) ENGINE=BLACKHOLE;
|
||||
CREATE TABLE t1n (e INT, f INT) ENGINE=NDB;
|
||||
RESET MASTER;
|
||||
SET SESSION BINLOG_FORMAT=STATEMENT;
|
||||
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 t1m VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
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;
|
||||
@ -17,30 +17,28 @@ TRUNCATE t1b;
|
||||
TRUNCATE t1n;
|
||||
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 t1m VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
master-bin.000001 # Query # # use `test`; BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
master-bin.000001 # Query # # use `test`; COMMIT
|
||||
master-bin.000001 # Query # # use `test`; BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
master-bin.000001 # Query # # use `test`; UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c
|
||||
master-bin.000001 # Query # # use `test`; COMMIT
|
||||
master-bin.000001 # Query # # use `test`; BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
master-bin.000001 # Query # # use `test`; UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f
|
||||
master-bin.000001 # Query # # use `test`; UPDATE t1n, t1b SET e = 2, b = 3 WHERE f = c
|
||||
master-bin.000001 # Query # # use `test`; COMMIT
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE t1m
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE t1b
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1n)
|
||||
master-bin.000001 # Table_map # # table_id: # (mysql.ndb_apply_status)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE t1m
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE t1b
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE t1n
|
||||
RESET MASTER;
|
||||
SET SESSION BINLOG_FORMAT=MIXED;
|
||||
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 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;
|
||||
@ -52,21 +50,19 @@ TRUNCATE t1b;
|
||||
TRUNCATE t1n;
|
||||
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 t1m VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
master-bin.000001 # Query # # use `test`; BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1b VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
master-bin.000001 # Query # # use `test`; COMMIT
|
||||
master-bin.000001 # Query # # use `test`; BEGIN
|
||||
master-bin.000001 # Query # # use `test`; UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c
|
||||
master-bin.000001 # Query # # use `test`; COMMIT
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE t1m
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE t1b
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t1m VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1n)
|
||||
master-bin.000001 # Table_map # # table_id: # (mysql.ndb_apply_status)
|
||||
master-bin.000001 # Write_rows # # table_id: #
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
master-bin.000001 # Query # # COMMIT
|
||||
master-bin.000001 # Query # # use `test`; UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE t1m
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE t1b
|
||||
master-bin.000001 # Query # # use `test`; TRUNCATE t1n
|
||||
RESET MASTER;
|
||||
SET SESSION BINLOG_FORMAT=ROW;
|
||||
|
@ -11399,6 +11399,23 @@ cp932_japanese_ci 6109
|
||||
cp932_japanese_ci 61
|
||||
cp932_japanese_ci 6120
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET collation_connection='cp932_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
@ -11409,6 +11426,23 @@ cp932_bin 6109
|
||||
cp932_bin 61
|
||||
cp932_bin 6120
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
create table t2 (a char(1));
|
||||
insert into t2 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
|
||||
insert into t2 values ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
|
||||
|
@ -822,10 +822,8 @@ 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 # # use `test`; 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 # # use `test`; ROLLBACK
|
||||
select count(*) from t1 /* must be 4 */;
|
||||
count(*)
|
||||
4
|
||||
|
@ -11399,6 +11399,23 @@ cp932_japanese_ci 6109
|
||||
cp932_japanese_ci 61
|
||||
cp932_japanese_ci 6120
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
SET collation_connection='cp932_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
@ -11409,6 +11426,23 @@ cp932_bin 6109
|
||||
cp932_bin 61
|
||||
cp932_bin 6120
|
||||
drop table t1;
|
||||
CREATE TABLE t1 AS
|
||||
SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d;
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b);
|
||||
INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5));
|
||||
INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10));
|
||||
INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11));
|
||||
INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12));
|
||||
SELECT hex(concat(repeat(0xF1F2, 10), '%'));
|
||||
hex(concat(repeat(0xF1F2, 10), '%'))
|
||||
F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225
|
||||
3 rows expected
|
||||
SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%');
|
||||
a hex(b) c
|
||||
2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2
|
||||
DROP TABLE t1;
|
||||
create table t2 (a char(1));
|
||||
insert into t2 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7');
|
||||
insert into t2 values ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F');
|
||||
|
@ -15,10 +15,14 @@ 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=1, @@session.unique_checks=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/*!*/;
|
||||
insert into t2 values (@v)
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
|
@ -549,10 +549,8 @@ 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 # # use `test`; 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 # # use `test`; ROLLBACK
|
||||
/* the output must denote there is the query */;
|
||||
select count(*) from t1 /* must be 4 */;
|
||||
count(*)
|
||||
@ -788,10 +786,8 @@ 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 # # use `test`; 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 # # use `test`; ROLLBACK
|
||||
select count(*) from t1 /* must be 4 */;
|
||||
count(*)
|
||||
4
|
||||
|
@ -1,13 +1,194 @@
|
||||
SET BINLOG_FORMAT=STATEMENT;
|
||||
CREATE TABLE t1 (a CHAR(40));
|
||||
CREATE TABLE t2 (a INT AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t3 (b INT AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE VIEW v1(a,b) AS SELECT a,b FROM t2,t3;
|
||||
INSERT INTO t1 SELECT UUID();
|
||||
==== Setup tables ====
|
||||
CREATE TABLE t1 (a INT);
|
||||
CREATE TABLE t2 (a CHAR(40));
|
||||
CREATE TABLE t3 (a INT AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE trigger_table (a CHAR(7));
|
||||
CREATE TABLE trigger_table2 (a INT);
|
||||
==== Non-deterministic statements ====
|
||||
INSERT DELAYED INTO t1 VALUES (5);
|
||||
==== Some variables that *should* be unsafe ====
|
||||
---- Insert directly ----
|
||||
INSERT INTO t1 VALUES (@@global.sync_binlog);
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
SHOW WARNINGS;
|
||||
Level Warning
|
||||
Code 1592
|
||||
Message Statement is not safe to log in statement format.
|
||||
DROP TABLE t1,t2,t3;
|
||||
INSERT INTO t1 VALUES (@@session.insert_id);
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
INSERT INTO t1 VALUES (@@global.auto_increment_increment);
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
INSERT INTO t2 SELECT UUID();
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
INSERT INTO t2 VALUES (@@session.sql_mode);
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
INSERT INTO t2 VALUES (@@global.init_slave);
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
INSERT INTO t2 VALUES (@@hostname);
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
---- Insert from stored procedure ----
|
||||
CREATE PROCEDURE proc()
|
||||
BEGIN
|
||||
INSERT INTO t1 VALUES (@@global.sync_binlog);
|
||||
INSERT INTO t1 VALUES (@@session.insert_id);
|
||||
INSERT INTO t1 VALUES (@@global.auto_increment_increment);
|
||||
INSERT INTO t2 SELECT UUID();
|
||||
INSERT INTO t2 VALUES (@@session.sql_mode);
|
||||
INSERT INTO t2 VALUES (@@global.init_slave);
|
||||
INSERT INTO t2 VALUES (@@hostname);
|
||||
END|
|
||||
CALL proc();
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
---- Insert from stored function ----
|
||||
CREATE FUNCTION func()
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
INSERT INTO t1 VALUES (@@global.sync_binlog);
|
||||
INSERT INTO t1 VALUES (@@session.insert_id);
|
||||
INSERT INTO t1 VALUES (@@global.auto_increment_increment);
|
||||
INSERT INTO t2 SELECT UUID();
|
||||
INSERT INTO t2 VALUES (@@session.sql_mode);
|
||||
INSERT INTO t2 VALUES (@@global.init_slave);
|
||||
INSERT INTO t2 VALUES (@@hostname);
|
||||
RETURN 0;
|
||||
END|
|
||||
SELECT func();
|
||||
func()
|
||||
0
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
---- Insert from trigger ----
|
||||
CREATE TRIGGER trig
|
||||
BEFORE INSERT ON trigger_table
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO t1 VALUES (@@global.sync_binlog);
|
||||
INSERT INTO t1 VALUES (@@session.insert_id);
|
||||
INSERT INTO t1 VALUES (@@global.auto_increment_increment);
|
||||
INSERT INTO t2 SELECT UUID();
|
||||
INSERT INTO t2 VALUES (@@session.sql_mode);
|
||||
INSERT INTO t2 VALUES (@@global.init_slave);
|
||||
INSERT INTO t2 VALUES (@@hostname);
|
||||
END|
|
||||
INSERT INTO trigger_table VALUES ('bye.');
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
---- Insert from prepared statement ----
|
||||
PREPARE p1 FROM 'INSERT INTO t1 VALUES (@@global.sync_binlog)';
|
||||
PREPARE p2 FROM 'INSERT INTO t1 VALUES (@@session.insert_id)';
|
||||
PREPARE p3 FROM 'INSERT INTO t1 VALUES (@@global.auto_increment_increment)';
|
||||
PREPARE p4 FROM 'INSERT INTO t2 SELECT UUID()';
|
||||
PREPARE p5 FROM 'INSERT INTO t2 VALUES (@@session.sql_mode)';
|
||||
PREPARE p6 FROM 'INSERT INTO t2 VALUES (@@global.init_slave)';
|
||||
PREPARE p7 FROM 'INSERT INTO t2 VALUES (@@hostname)';
|
||||
EXECUTE p1;
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
EXECUTE p2;
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
EXECUTE p3;
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
EXECUTE p4;
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
EXECUTE p5;
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
EXECUTE p6;
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
EXECUTE p7;
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
---- Insert from nested call of triggers / functions / procedures ----
|
||||
CREATE PROCEDURE proc1()
|
||||
INSERT INTO trigger_table VALUES ('ha!')|
|
||||
CREATE FUNCTION func2()
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
CALL proc1();
|
||||
RETURN 0;
|
||||
END|
|
||||
CREATE TRIGGER trig3
|
||||
BEFORE INSERT ON trigger_table2
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE tmp INT;
|
||||
SELECT func2() INTO tmp;
|
||||
END|
|
||||
CREATE PROCEDURE proc4()
|
||||
INSERT INTO trigger_table2 VALUES (1)|
|
||||
CREATE FUNCTION func5()
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
CALL proc4;
|
||||
RETURN 0;
|
||||
END|
|
||||
PREPARE prep6 FROM 'SELECT func5()'|
|
||||
EXECUTE prep6;
|
||||
func5()
|
||||
0
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
==== Variables that should *not* be unsafe ====
|
||||
INSERT INTO t1 VALUES (@@session.pseudo_thread_id);
|
||||
INSERT INTO t1 VALUES (@@session.pseudo_thread_id);
|
||||
INSERT INTO t1 VALUES (@@session.foreign_key_checks);
|
||||
INSERT INTO t1 VALUES (@@session.sql_auto_is_null);
|
||||
INSERT INTO t1 VALUES (@@session.unique_checks);
|
||||
INSERT INTO t1 VALUES (@@session.auto_increment_increment);
|
||||
INSERT INTO t1 VALUES (@@session.auto_increment_offset);
|
||||
INSERT INTO t2 VALUES (@@session.character_set_client);
|
||||
INSERT INTO t2 VALUES (@@session.collation_connection);
|
||||
INSERT INTO t2 VALUES (@@session.collation_server);
|
||||
INSERT INTO t2 VALUES (@@session.time_zone);
|
||||
INSERT INTO t2 VALUES (@@session.lc_time_names);
|
||||
INSERT INTO t2 VALUES (@@session.collation_database);
|
||||
INSERT INTO t2 VALUES (@@session.timestamp);
|
||||
INSERT INTO t2 VALUES (@@session.last_insert_id);
|
||||
SET @my_var= 4711;
|
||||
INSERT INTO t1 VALUES (@my_var);
|
||||
SET insert_id=12;
|
||||
INSERT INTO t3 VALUES (NULL);
|
||||
==== Clean up ====
|
||||
DROP PROCEDURE proc;
|
||||
DROP FUNCTION func;
|
||||
DROP TRIGGER trig;
|
||||
DROP PROCEDURE proc1;
|
||||
DROP FUNCTION func2;
|
||||
DROP TRIGGER trig3;
|
||||
DROP PROCEDURE proc4;
|
||||
DROP FUNCTION func5;
|
||||
DROP PREPARE prep6;
|
||||
DROP TABLE t1, t2, t3, trigger_table, trigger_table2;
|
||||
|
@ -70,7 +70,7 @@ select * from t1;
|
||||
--echo ==== Test --base64-output=never on a binlog with row events ====
|
||||
|
||||
# mysqlbinlog should fail
|
||||
--replace_regex /#[0-9][0-9][0-9][0-9][0-9][0-9] .*/#/
|
||||
--replace_regex /#[0-9][0-9][0-9][0-9][0-9][0-9] .*/<#>/ /SET \@\@session.pseudo_thread_id.*/<#>/
|
||||
error 1;
|
||||
exec $MYSQL_BINLOG --base64-output=never suite/binlog/std_data/bug32407.001;
|
||||
# the above line should output the query log event and then stop
|
||||
|
@ -15,11 +15,16 @@ RESET MASTER;
|
||||
|
||||
SET SESSION BINLOG_FORMAT=STATEMENT;
|
||||
|
||||
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 t1m VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
|
||||
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
|
||||
|
||||
# Here and below we need to wait when some event appears in binlog
|
||||
# to avoid unsrted mixing local events and from NDB
|
||||
let $wait_binlog_event= t1m, t1b;
|
||||
source include/wait_for_binlog_event.inc;
|
||||
|
||||
echo *** 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);
|
||||
@ -27,20 +32,33 @@ UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
|
||||
UPDATE t1n, t1b SET e = 2, b = 3 WHERE f = c;
|
||||
COMMIT;
|
||||
|
||||
let $wait_binlog_event= COMMIT;
|
||||
source include/wait_for_binlog_event.inc;
|
||||
|
||||
TRUNCATE t1m;
|
||||
TRUNCATE t1b;
|
||||
TRUNCATE t1n;
|
||||
|
||||
let $wait_binlog_event= t1n;
|
||||
source include/wait_for_binlog_event.inc;
|
||||
|
||||
source include/show_binlog_events.inc;
|
||||
|
||||
RESET MASTER;
|
||||
|
||||
SET SESSION BINLOG_FORMAT=MIXED;
|
||||
|
||||
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 t1m VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
|
||||
let $wait_binlog_event= t1m;
|
||||
source include/wait_for_binlog_event.inc;
|
||||
|
||||
INSERT INTO t1n VALUES (1,1), (1,2), (2,1), (2,2);
|
||||
|
||||
let $wait_binlog_event= COMMIT;
|
||||
source include/wait_for_binlog_event.inc;
|
||||
|
||||
UPDATE t1m, t1b SET m = 2, b = 3 WHERE n = c;
|
||||
error ER_BINLOG_LOGGING_IMPOSSIBLE;
|
||||
UPDATE t1m, t1n SET m = 2, e = 3 WHERE n = f;
|
||||
|
@ -1,18 +1,238 @@
|
||||
# Test to check that a warning is generated for unsafe statements
|
||||
# executed under statement mode logging.
|
||||
# ==== Purpose ====
|
||||
#
|
||||
# Some statements can not be written to the binlog in a safe manner
|
||||
# with statement-based replication, either because they rely on
|
||||
# features that are local to the server they are replicated from
|
||||
# (e.g., @@variables), or because they include nondeterministic
|
||||
# queries (e.g., LIMIT), or because the time at which the query is
|
||||
# executed cannot be determined (e.g., INSERT DELAYED). Such
|
||||
# statements should be marked unsafe. All unsafe statements should
|
||||
# give a warning.
|
||||
#
|
||||
# This test verifies that a warning is generated for statements that
|
||||
# should be unsafe, when they are executed under statement mode
|
||||
# logging.
|
||||
#
|
||||
# All variables should be unsafe, with some exceptions. Therefore,
|
||||
# this test also verifies that the exceptions do *not* generare a
|
||||
# warning.
|
||||
#
|
||||
#
|
||||
# ==== Method ====
|
||||
#
|
||||
# We try an INSERT DELAYED statement and verify that a warning is
|
||||
# issued.
|
||||
#
|
||||
# We try to insert unsafe variables into a table in several ways:
|
||||
# directly with an INSERT statement, from a stored procedure, from a
|
||||
# stored function, from a trigger, from a prepared statement, and from
|
||||
# a complicated nesting of triggers, functions, procedures, and
|
||||
# prepared statements. In all cases, a warning should be issued.
|
||||
#
|
||||
# We try to insert the variables that should not be unsafe into a
|
||||
# table, and verify that *no* warning is issued.
|
||||
#
|
||||
#
|
||||
# ==== Related bugs and worklogs ====
|
||||
#
|
||||
# WL#3339: Issue warnings when statement-based replication may fail
|
||||
# BUG#31168: @@hostname does not replicate
|
||||
# BUG#34732: mysqlbinlog does not print default values for auto_increment variables
|
||||
# BUG#34768: nondeterministic INSERT using LIMIT logged in stmt mode if binlog_format=mixed
|
||||
#
|
||||
#
|
||||
# ==== Related test cases ====
|
||||
#
|
||||
# rpl.rpl_variables verifies that variables which cannot be replicated
|
||||
# safely in statement mode are replicated correctly in mixed or row
|
||||
# mode.
|
||||
#
|
||||
# rpl.rpl_variables_stm tests the small subset of variables that
|
||||
# actually can be replicated safely in statement mode.
|
||||
#
|
||||
#
|
||||
# ==== Todo ====
|
||||
#
|
||||
# There are several other ways to create unsafe statements: see, e.g.,
|
||||
# WL#3339, BUG#34768.
|
||||
|
||||
source include/have_log_bin.inc;
|
||||
source include/have_binlog_format_statement.inc;
|
||||
|
||||
SET BINLOG_FORMAT=STATEMENT;
|
||||
--echo ==== Setup tables ====
|
||||
|
||||
CREATE TABLE t1 (a CHAR(40));
|
||||
CREATE TABLE t2 (a INT AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t3 (b INT AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE VIEW v1(a,b) AS SELECT a,b FROM t2,t3;
|
||||
|
||||
INSERT INTO t1 SELECT UUID();
|
||||
query_vertical SHOW WARNINGS;
|
||||
|
||||
DROP TABLE t1,t2,t3;
|
||||
CREATE TABLE t1 (a INT);
|
||||
CREATE TABLE t2 (a CHAR(40));
|
||||
CREATE TABLE t3 (a INT AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE trigger_table (a CHAR(7));
|
||||
CREATE TABLE trigger_table2 (a INT);
|
||||
|
||||
|
||||
--echo ==== Non-deterministic statements ====
|
||||
|
||||
INSERT DELAYED INTO t1 VALUES (5);
|
||||
|
||||
|
||||
--echo ==== Some variables that *should* be unsafe ====
|
||||
|
||||
--echo ---- Insert directly ----
|
||||
|
||||
INSERT INTO t1 VALUES (@@global.sync_binlog);
|
||||
INSERT INTO t1 VALUES (@@session.insert_id);
|
||||
INSERT INTO t1 VALUES (@@global.auto_increment_increment);
|
||||
INSERT INTO t2 SELECT UUID();
|
||||
INSERT INTO t2 VALUES (@@session.sql_mode);
|
||||
INSERT INTO t2 VALUES (@@global.init_slave);
|
||||
INSERT INTO t2 VALUES (@@hostname);
|
||||
|
||||
--echo ---- Insert from stored procedure ----
|
||||
|
||||
DELIMITER |;
|
||||
CREATE PROCEDURE proc()
|
||||
BEGIN
|
||||
INSERT INTO t1 VALUES (@@global.sync_binlog);
|
||||
INSERT INTO t1 VALUES (@@session.insert_id);
|
||||
INSERT INTO t1 VALUES (@@global.auto_increment_increment);
|
||||
INSERT INTO t2 SELECT UUID();
|
||||
INSERT INTO t2 VALUES (@@session.sql_mode);
|
||||
INSERT INTO t2 VALUES (@@global.init_slave);
|
||||
INSERT INTO t2 VALUES (@@hostname);
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
CALL proc();
|
||||
|
||||
--echo ---- Insert from stored function ----
|
||||
|
||||
DELIMITER |;
|
||||
CREATE FUNCTION func()
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
INSERT INTO t1 VALUES (@@global.sync_binlog);
|
||||
INSERT INTO t1 VALUES (@@session.insert_id);
|
||||
INSERT INTO t1 VALUES (@@global.auto_increment_increment);
|
||||
INSERT INTO t2 SELECT UUID();
|
||||
INSERT INTO t2 VALUES (@@session.sql_mode);
|
||||
INSERT INTO t2 VALUES (@@global.init_slave);
|
||||
INSERT INTO t2 VALUES (@@hostname);
|
||||
RETURN 0;
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
SELECT func();
|
||||
|
||||
--echo ---- Insert from trigger ----
|
||||
|
||||
DELIMITER |;
|
||||
CREATE TRIGGER trig
|
||||
BEFORE INSERT ON trigger_table
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
INSERT INTO t1 VALUES (@@global.sync_binlog);
|
||||
INSERT INTO t1 VALUES (@@session.insert_id);
|
||||
INSERT INTO t1 VALUES (@@global.auto_increment_increment);
|
||||
INSERT INTO t2 SELECT UUID();
|
||||
INSERT INTO t2 VALUES (@@session.sql_mode);
|
||||
INSERT INTO t2 VALUES (@@global.init_slave);
|
||||
INSERT INTO t2 VALUES (@@hostname);
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
INSERT INTO trigger_table VALUES ('bye.');
|
||||
|
||||
--echo ---- Insert from prepared statement ----
|
||||
|
||||
PREPARE p1 FROM 'INSERT INTO t1 VALUES (@@global.sync_binlog)';
|
||||
PREPARE p2 FROM 'INSERT INTO t1 VALUES (@@session.insert_id)';
|
||||
PREPARE p3 FROM 'INSERT INTO t1 VALUES (@@global.auto_increment_increment)';
|
||||
PREPARE p4 FROM 'INSERT INTO t2 SELECT UUID()';
|
||||
PREPARE p5 FROM 'INSERT INTO t2 VALUES (@@session.sql_mode)';
|
||||
PREPARE p6 FROM 'INSERT INTO t2 VALUES (@@global.init_slave)';
|
||||
PREPARE p7 FROM 'INSERT INTO t2 VALUES (@@hostname)';
|
||||
|
||||
EXECUTE p1; EXECUTE p2; EXECUTE p3; EXECUTE p4; EXECUTE p5;
|
||||
EXECUTE p6; EXECUTE p7;
|
||||
|
||||
--echo ---- Insert from nested call of triggers / functions / procedures ----
|
||||
|
||||
DELIMITER |;
|
||||
|
||||
# proc1: cause trigger 'trig' above to be triggered.
|
||||
CREATE PROCEDURE proc1()
|
||||
INSERT INTO trigger_table VALUES ('ha!')|
|
||||
|
||||
# func2: call proc1 above.
|
||||
CREATE FUNCTION func2()
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
CALL proc1();
|
||||
RETURN 0;
|
||||
END|
|
||||
|
||||
# trig3: call func2 above
|
||||
CREATE TRIGGER trig3
|
||||
BEFORE INSERT ON trigger_table2
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
DECLARE tmp INT;
|
||||
SELECT func2() INTO tmp;
|
||||
END|
|
||||
|
||||
# proc4: cause trig3 above to be triggered.
|
||||
CREATE PROCEDURE proc4()
|
||||
INSERT INTO trigger_table2 VALUES (1)|
|
||||
|
||||
# func5: call proc4 above.
|
||||
CREATE FUNCTION func5()
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
CALL proc4;
|
||||
RETURN 0;
|
||||
END|
|
||||
|
||||
# prep6: call func5() above.
|
||||
PREPARE prep6 FROM 'SELECT func5()'|
|
||||
|
||||
DELIMITER ;|
|
||||
|
||||
# try a complicated call path to trigger 'trig'.
|
||||
EXECUTE prep6;
|
||||
|
||||
|
||||
--echo ==== Variables that should *not* be unsafe ====
|
||||
|
||||
INSERT INTO t1 VALUES (@@session.pseudo_thread_id);
|
||||
INSERT INTO t1 VALUES (@@session.pseudo_thread_id);
|
||||
INSERT INTO t1 VALUES (@@session.foreign_key_checks);
|
||||
INSERT INTO t1 VALUES (@@session.sql_auto_is_null);
|
||||
INSERT INTO t1 VALUES (@@session.unique_checks);
|
||||
INSERT INTO t1 VALUES (@@session.auto_increment_increment);
|
||||
INSERT INTO t1 VALUES (@@session.auto_increment_offset);
|
||||
INSERT INTO t2 VALUES (@@session.character_set_client);
|
||||
INSERT INTO t2 VALUES (@@session.collation_connection);
|
||||
INSERT INTO t2 VALUES (@@session.collation_server);
|
||||
INSERT INTO t2 VALUES (@@session.time_zone);
|
||||
INSERT INTO t2 VALUES (@@session.lc_time_names);
|
||||
INSERT INTO t2 VALUES (@@session.collation_database);
|
||||
INSERT INTO t2 VALUES (@@session.timestamp);
|
||||
INSERT INTO t2 VALUES (@@session.last_insert_id);
|
||||
SET @my_var= 4711;
|
||||
INSERT INTO t1 VALUES (@my_var);
|
||||
|
||||
# using insert_id implicitly should be ok.
|
||||
SET insert_id=12;
|
||||
INSERT INTO t3 VALUES (NULL);
|
||||
|
||||
|
||||
--echo ==== Clean up ====
|
||||
|
||||
DROP PROCEDURE proc;
|
||||
DROP FUNCTION func;
|
||||
DROP TRIGGER trig;
|
||||
DROP PROCEDURE proc1;
|
||||
DROP FUNCTION func2;
|
||||
DROP TRIGGER trig3;
|
||||
DROP PROCEDURE proc4;
|
||||
DROP FUNCTION func5;
|
||||
DROP PREPARE prep6;
|
||||
DROP TABLE t1, t2, t3, trigger_table, trigger_table2;
|
||||
|
@ -9,4 +9,3 @@
|
||||
# Do not use any TAB characters for whitespace.
|
||||
#
|
||||
##############################################################################
|
||||
binlog_multi_engine : Bug#32663 binlog_multi_engine.test fails randomly
|
||||
|
23
mysql-test/suite/bugs/r/rpl_bug23533.result
Normal file
23
mysql-test/suite/bugs/r/rpl_bug23533.result
Normal file
@ -0,0 +1,23 @@
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
SET AUTOCOMMIT=0;
|
||||
SET GLOBAL max_binlog_cache_size=4096;
|
||||
SHOW VARIABLES LIKE 'max_binlog_cache_size';
|
||||
Variable_name Value
|
||||
max_binlog_cache_size 4096
|
||||
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b TEXT, PRIMARY KEY(a)) ENGINE=InnoDB;
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
1000
|
||||
START TRANSACTION;
|
||||
CREATE TABLE t2 SELECT * FROM t1;
|
||||
ERROR HY000: Writing one row to the row-based binary log failed
|
||||
COMMIT;
|
||||
SHOW TABLES LIKE 't%';
|
||||
Tables_in_test (t%)
|
||||
t1
|
@ -13,3 +13,4 @@ a b
|
||||
SELECT * FROM t1 ORDER BY a;
|
||||
a b
|
||||
3 -3
|
||||
DROP TABLE t1;
|
||||
|
43
mysql-test/suite/bugs/t/rpl_bug23533.test
Normal file
43
mysql-test/suite/bugs/t/rpl_bug23533.test
Normal file
@ -0,0 +1,43 @@
|
||||
#############################################################
|
||||
# Author: Serge Kozlov <skozlov@mysql.com>
|
||||
# Date: 02/26/2008
|
||||
# Purpose: testing bug report
|
||||
# Bug#23533: CREATE SELECT max_binlog_cache_size test
|
||||
# case needed
|
||||
#############################################################
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_binlog_format_row.inc
|
||||
--source include/master-slave.inc
|
||||
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
--enable_warnings
|
||||
|
||||
SET AUTOCOMMIT=0;
|
||||
SET GLOBAL max_binlog_cache_size=4096;
|
||||
SHOW VARIABLES LIKE 'max_binlog_cache_size';
|
||||
|
||||
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b TEXT, PRIMARY KEY(a)) ENGINE=InnoDB;
|
||||
|
||||
--disable_query_log
|
||||
let $i= 1000;
|
||||
while ($i)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES($i, REPEAT('x', 4096));
|
||||
dec $i;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
SELECT COUNT(*) FROM t1;
|
||||
|
||||
# Copied data from t1 into t2 large than max_binlog_cache_size
|
||||
START TRANSACTION;
|
||||
--error 1534
|
||||
CREATE TABLE t2 SELECT * FROM t1;
|
||||
COMMIT;
|
||||
SHOW TABLES LIKE 't%';
|
||||
|
||||
|
||||
# 5.1 End of Test
|
@ -18,9 +18,7 @@ master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (1,1), (1,2), (2
|
||||
master-bin.000001 # Query # # use `test`; BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t2 VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
master-bin.000001 # Query # # use `test`; COMMIT
|
||||
master-bin.000001 # Query # # use `test`; BEGIN
|
||||
master-bin.000001 # Query # # use `test`; UPDATE t1, t2 SET m = 2, b = 3 WHERE n = c
|
||||
master-bin.000001 # Query # # use `test`; COMMIT
|
||||
master-bin.000001 # Query # # use `test`; BEGIN
|
||||
master-bin.000001 # Query # # use `test`; INSERT INTO t3 VALUES (1,1), (1,2), (2,1), (2,2)
|
||||
master-bin.000001 # Query # # use `test`; UPDATE t1, t3 SET m = 2, e = 3 WHERE n = f
|
||||
|
43
mysql-test/suite/rpl/r/rpl_bug33931.result
Normal file
43
mysql-test/suite/rpl/r/rpl_bug33931.result
Normal file
@ -0,0 +1,43 @@
|
||||
reset master;
|
||||
stop slave;
|
||||
reset slave;
|
||||
start slave;
|
||||
show slave status;
|
||||
Slave_IO_State #
|
||||
Master_Host 127.0.0.1
|
||||
Master_User root
|
||||
Master_Port MASTER_PORT
|
||||
Connect_Retry 1
|
||||
Master_Log_File
|
||||
Read_Master_Log_Pos 4
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File
|
||||
Slave_IO_Running No
|
||||
Slave_SQL_Running No
|
||||
Replicate_Do_DB
|
||||
Replicate_Ignore_DB
|
||||
Replicate_Do_Table
|
||||
Replicate_Ignore_Table
|
||||
Replicate_Wild_Do_Table
|
||||
Replicate_Wild_Ignore_Table
|
||||
Last_Errno 0
|
||||
Last_Error
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos 0
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
Until_Log_Pos 0
|
||||
Master_SSL_Allowed No
|
||||
Master_SSL_CA_File
|
||||
Master_SSL_CA_Path
|
||||
Master_SSL_Cert
|
||||
Master_SSL_Cipher
|
||||
Master_SSL_Key
|
||||
Seconds_Behind_Master #
|
||||
Master_SSL_Verify_Server_Cert No
|
||||
Last_IO_Errno 0
|
||||
Last_IO_Error
|
||||
Last_SQL_Errno 0
|
||||
Last_SQL_Error
|
@ -399,6 +399,62 @@ set @b1 = concat(@b1,@b1);
|
||||
INSERT INTO t8 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
|
||||
*** Drop t8 ***
|
||||
DROP TABLE t8;
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
CREATE TABLE t9 (a INT KEY, b BLOB, c CHAR(5),
|
||||
d TIMESTAMP,
|
||||
e INT NOT NULL) ENGINE='InnoDB';
|
||||
*** Create t9 on Master ***
|
||||
CREATE TABLE t9 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
|
||||
) ENGINE='InnoDB';
|
||||
RESET MASTER;
|
||||
*** Start Slave ***
|
||||
START SLAVE;
|
||||
*** Master Data Insert ***
|
||||
set @b1 = 'b1b1b1b1';
|
||||
set @b1 = concat(@b1,@b1);
|
||||
INSERT INTO t9 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
|
||||
SHOW SLAVE STATUS;
|
||||
Slave_IO_State #
|
||||
Master_Host 127.0.0.1
|
||||
Master_User root
|
||||
Master_Port #
|
||||
Connect_Retry 1
|
||||
Master_Log_File master-bin.000001
|
||||
Read_Master_Log_Pos #
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File master-bin.000001
|
||||
Slave_IO_Running Yes
|
||||
Slave_SQL_Running No
|
||||
Replicate_Do_DB
|
||||
Replicate_Ignore_DB
|
||||
Replicate_Do_Table
|
||||
Replicate_Ignore_Table #
|
||||
Replicate_Wild_Do_Table
|
||||
Replicate_Wild_Ignore_Table
|
||||
Last_Errno 1364
|
||||
Last_Error Could not execute Write_rows event on table test.t9; Field 'e' doesn't have a default value, Error_code: 1364; handler error HA_ERR_ROWS_EVENT_APPLY; the event's master log master-bin.000001, end_log_pos 330
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos #
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
Until_Log_Pos 0
|
||||
Master_SSL_Allowed No
|
||||
Master_SSL_CA_File
|
||||
Master_SSL_CA_Path
|
||||
Master_SSL_Cert
|
||||
Master_SSL_Cipher
|
||||
Master_SSL_Key
|
||||
Seconds_Behind_Master #
|
||||
Master_SSL_Verify_Server_Cert No
|
||||
Last_IO_Errno #
|
||||
Last_IO_Error #
|
||||
Last_SQL_Errno 1364
|
||||
Last_SQL_Error Could not execute Write_rows event on table test.t9; Field 'e' doesn't have a default value, Error_code: 1364; handler error HA_ERR_ROWS_EVENT_APPLY; the event's master log master-bin.000001, end_log_pos 330
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||
START SLAVE;
|
||||
*** Create t10 on slave ***
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
|
@ -399,6 +399,62 @@ set @b1 = concat(@b1,@b1);
|
||||
INSERT INTO t8 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
|
||||
*** Drop t8 ***
|
||||
DROP TABLE t8;
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
CREATE TABLE t9 (a INT KEY, b BLOB, c CHAR(5),
|
||||
d TIMESTAMP,
|
||||
e INT NOT NULL) ENGINE='MyISAM';
|
||||
*** Create t9 on Master ***
|
||||
CREATE TABLE t9 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
|
||||
) ENGINE='MyISAM';
|
||||
RESET MASTER;
|
||||
*** Start Slave ***
|
||||
START SLAVE;
|
||||
*** Master Data Insert ***
|
||||
set @b1 = 'b1b1b1b1';
|
||||
set @b1 = concat(@b1,@b1);
|
||||
INSERT INTO t9 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
|
||||
SHOW SLAVE STATUS;
|
||||
Slave_IO_State #
|
||||
Master_Host 127.0.0.1
|
||||
Master_User root
|
||||
Master_Port #
|
||||
Connect_Retry 1
|
||||
Master_Log_File master-bin.000001
|
||||
Read_Master_Log_Pos #
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File master-bin.000001
|
||||
Slave_IO_Running Yes
|
||||
Slave_SQL_Running No
|
||||
Replicate_Do_DB
|
||||
Replicate_Ignore_DB
|
||||
Replicate_Do_Table
|
||||
Replicate_Ignore_Table #
|
||||
Replicate_Wild_Do_Table
|
||||
Replicate_Wild_Ignore_Table
|
||||
Last_Errno 1364
|
||||
Last_Error Could not execute Write_rows event on table test.t9; Field 'e' doesn't have a default value, Error_code: 1364; handler error HA_ERR_ROWS_EVENT_APPLY; the event's master log master-bin.000001, end_log_pos 262
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos #
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
Until_Log_Pos 0
|
||||
Master_SSL_Allowed No
|
||||
Master_SSL_CA_File
|
||||
Master_SSL_CA_Path
|
||||
Master_SSL_Cert
|
||||
Master_SSL_Cipher
|
||||
Master_SSL_Key
|
||||
Seconds_Behind_Master #
|
||||
Master_SSL_Verify_Server_Cert No
|
||||
Last_IO_Errno #
|
||||
Last_IO_Error #
|
||||
Last_SQL_Errno 1364
|
||||
Last_SQL_Error Could not execute Write_rows event on table test.t9; Field 'e' doesn't have a default value, Error_code: 1364; handler error HA_ERR_ROWS_EVENT_APPLY; the event's master log master-bin.000001, end_log_pos 262
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||
START SLAVE;
|
||||
*** Create t10 on slave ***
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
|
@ -23,7 +23,7 @@ start slave;
|
||||
let $result_pattern= '%127.0.0.1%root%slave-bin.000001%slave-bin.000001%Yes%Yes%0%0%None%' ;
|
||||
|
||||
--source include/wait_slave_status.inc
|
||||
flush logs;
|
||||
FLUSH LOGS;
|
||||
SHOW SLAVE STATUS;
|
||||
Slave_IO_State #
|
||||
Master_Host 127.0.0.1
|
||||
@ -31,7 +31,7 @@ Master_User root
|
||||
Master_Port SLAVE_PORT
|
||||
Connect_Retry 60
|
||||
Master_Log_File slave-bin.000001
|
||||
Read_Master_Log_Pos 216
|
||||
Read_Master_Log_Pos POSITION
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File slave-bin.000001
|
||||
@ -46,7 +46,7 @@ Replicate_Wild_Ignore_Table
|
||||
Last_Errno 0
|
||||
Last_Error
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos 216
|
||||
Exec_Master_Log_Pos POSITION
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
|
@ -116,23 +116,23 @@ t12
|
||||
t13
|
||||
t2
|
||||
t3
|
||||
SELECT table_name FROM information_schema.views WHERE table_schema='test' ORDER BY table_name;
|
||||
SELECT table_name FROM information_schema.views WHERE table_schema='test';
|
||||
table_name
|
||||
v1
|
||||
v11
|
||||
SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test' ORDER BY trigger_name;
|
||||
SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test';
|
||||
trigger_name event_manipulation event_object_table
|
||||
t11_tr1 INSERT t11
|
||||
t11_tr2 UPDATE t11
|
||||
t1_tr1 INSERT t1
|
||||
t1_tr2 UPDATE t1
|
||||
SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test' ORDER BY routine_name;
|
||||
SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test';
|
||||
routine_type routine_name
|
||||
FUNCTION f1
|
||||
FUNCTION f2
|
||||
PROCEDURE p1
|
||||
PROCEDURE p11
|
||||
SELECT event_name, status FROM information_schema.events WHERE event_schema='test' ORDER BY event_name;
|
||||
SELECT event_name, status FROM information_schema.events WHERE event_schema='test';
|
||||
event_name status
|
||||
e1 DISABLED
|
||||
e11 DISABLED
|
||||
@ -276,23 +276,23 @@ t12
|
||||
t13
|
||||
t2
|
||||
t3
|
||||
SELECT table_name FROM information_schema.views WHERE table_schema='test' ORDER BY table_name;
|
||||
SELECT table_name FROM information_schema.views WHERE table_schema='test';
|
||||
table_name
|
||||
v1
|
||||
v11
|
||||
SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test' ORDER BY trigger_name;
|
||||
SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test';
|
||||
trigger_name event_manipulation event_object_table
|
||||
t11_tr1 INSERT t11
|
||||
t11_tr2 UPDATE t11
|
||||
t1_tr1 INSERT t1
|
||||
t1_tr2 UPDATE t1
|
||||
SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test' ORDER BY routine_name;
|
||||
SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test';
|
||||
routine_type routine_name
|
||||
FUNCTION f1
|
||||
FUNCTION f2
|
||||
PROCEDURE p1
|
||||
PROCEDURE p11
|
||||
SELECT event_name, status FROM information_schema.events WHERE event_schema='test' ORDER BY event_name;
|
||||
SELECT event_name, status FROM information_schema.events WHERE event_schema='test';
|
||||
event_name status
|
||||
e1 SLAVESIDE_DISABLED
|
||||
e11 SLAVESIDE_DISABLED
|
||||
|
@ -26,9 +26,6 @@ day id category name
|
||||
2003-02-22 2461 b a a a @ % ' " a
|
||||
2003-03-22 2161 c asdf
|
||||
2003-03-22 2416 a bbbbb
|
||||
show master status;
|
||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||
slave-bin.000001 1280
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
|
@ -16,3 +16,9 @@ select master_pos_wait('master-bin.999999',0);
|
||||
stop slave sql_thread;
|
||||
master_pos_wait('master-bin.999999',0)
|
||||
NULL
|
||||
"*** must be empty ***"
|
||||
show slave status;
|
||||
"*** must be NULL ***"
|
||||
select master_pos_wait('foo', 98);
|
||||
master_pos_wait('foo', 98)
|
||||
NULL
|
||||
|
33
mysql-test/suite/rpl/r/rpl_report.result
Normal file
33
mysql-test/suite/rpl/r/rpl_report.result
Normal file
@ -0,0 +1,33 @@
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
select * from Information_schema.GLOBAL_VARIABLES where variable_name like 'report_host';
|
||||
VARIABLE_NAME VARIABLE_VALUE
|
||||
REPORT_HOST 127.0.0.1
|
||||
select * from Information_schema.GLOBAL_VARIABLES where variable_name like 'report_port';
|
||||
VARIABLE_NAME VARIABLE_VALUE
|
||||
REPORT_PORT 9308
|
||||
select * from Information_schema.GLOBAL_VARIABLES where variable_name like 'report_user';
|
||||
VARIABLE_NAME VARIABLE_VALUE
|
||||
REPORT_USER my_user
|
||||
select * from Information_schema.GLOBAL_VARIABLES where variable_name like 'report_password';
|
||||
VARIABLE_NAME VARIABLE_VALUE
|
||||
REPORT_PASSWORD my_password
|
||||
show global variables like 'report_host';
|
||||
Variable_name report_host
|
||||
Value 127.0.0.1
|
||||
show global variables like 'report_port';
|
||||
Variable_name report_port
|
||||
Value 9308
|
||||
show global variables like 'report_user';
|
||||
Variable_name report_user
|
||||
Value my_user
|
||||
show global variables like 'report_password';
|
||||
Variable_name report_password
|
||||
Value my_password
|
||||
set @@global.report_host='my.new.address.net';
|
||||
ERROR HY000: Variable 'report_host' is a read only variable
|
||||
end of tests
|
@ -158,10 +158,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT)
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
@ -176,10 +180,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
DROP TABLE IF EXISTS t1,t2,t3
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -281,10 +289,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
DROP TABLE IF EXISTS t1,t2,t3
|
||||
/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -308,10 +320,14 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=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/*!*/;
|
||||
CREATE TABLE t3(c1 INT NOT NULL PRIMARY KEY, c2 LONGBLOB, c3 TIMESTAMP, c4 TEXT, c5 FLOAT)
|
||||
/*!*/;
|
||||
DELIMITER ;
|
||||
|
@ -13,6 +13,7 @@ DROP TABLE IF EXISTS mysqltest1.t3;
|
||||
DROP TABLE IF EXISTS mysqltest1.t1;
|
||||
DROP TABLE IF EXISTS mysqltest1.t2;
|
||||
DROP TABLE IF EXISTS mysqltest1.t4;
|
||||
DROP TABLE IF EXISTS mysqltest1.t10;
|
||||
CREATE TABLE mysqltest1.t1 (a INT, c CHAR(6),PRIMARY KEY(a));
|
||||
CREATE TABLE mysqltest1.t2 (a INT, c CHAR(6),PRIMARY KEY(a));
|
||||
CREATE TABLE mysqltest1.t3 (a INT, c CHAR(6), c2 CHAR(6), PRIMARY KEY(a));
|
||||
@ -35,6 +36,7 @@ a c c2
|
||||
1 Thank GOD
|
||||
2 it is
|
||||
3 Friday TGIF
|
||||
CREATE TABLE mysqltest1.t10 (a INT, PRIMARY KEY(a));
|
||||
SELECT * FROM mysqltest1.v2;
|
||||
qty price value
|
||||
3 50 150
|
||||
@ -98,4 +100,5 @@ DROP TABLE IF EXISTS mysqltest1.t3;
|
||||
DROP TABLE IF EXISTS mysqltest1.t1;
|
||||
DROP TABLE IF EXISTS mysqltest1.t2;
|
||||
DROP TABLE IF EXISTS mysqltest1.t4;
|
||||
DROP TABLE IF EXISTS mysqltest1.t10;
|
||||
DROP DATABASE mysqltest1;
|
||||
|
@ -4,10 +4,11 @@ reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
create table t1 (n int);
|
||||
reset master;
|
||||
stop slave;
|
||||
change master to master_port=SLAVE_PORT;
|
||||
start slave;
|
||||
*** must be having the replicate-same-server-id IO thread error ***
|
||||
show slave status;
|
||||
Slave_IO_State
|
||||
Master_Host 127.0.0.1
|
||||
@ -20,15 +21,15 @@ Relay_Log_File slave-relay-bin.000001
|
||||
Relay_Log_Pos 4
|
||||
Relay_Master_Log_File
|
||||
Slave_IO_Running No
|
||||
Slave_SQL_Running No
|
||||
Slave_SQL_Running #
|
||||
Replicate_Do_DB
|
||||
Replicate_Ignore_DB
|
||||
Replicate_Do_Table
|
||||
Replicate_Ignore_Table #
|
||||
Replicate_Wild_Do_Table
|
||||
Replicate_Wild_Ignore_Table #
|
||||
Last_Errno 0
|
||||
Last_Error
|
||||
Last_Errno #
|
||||
Last_Error #
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos 0
|
||||
Relay_Log_Space 106
|
||||
@ -43,13 +44,7 @@ Master_SSL_Cipher
|
||||
Master_SSL_Key
|
||||
Seconds_Behind_Master NULL
|
||||
Master_SSL_Verify_Server_Cert No
|
||||
Last_IO_Errno #
|
||||
Last_IO_Error #
|
||||
Last_SQL_Errno 0
|
||||
Last_SQL_Error
|
||||
start slave;
|
||||
insert into t1 values (1);
|
||||
show status like "slave_running";
|
||||
Variable_name Value
|
||||
Slave_running OFF
|
||||
drop table t1;
|
||||
Last_IO_Errno 1593
|
||||
Last_IO_Error Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
|
||||
Last_SQL_Errno #
|
||||
Last_SQL_Error #
|
||||
|
@ -4,31 +4,33 @@ reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
==== Test Without sql_mode=strict_trans_tables ====
|
||||
[on master]
|
||||
create table t1 (n int not null primary key);
|
||||
[on slave]
|
||||
insert into t1 values (1);
|
||||
[on master]
|
||||
insert into t1 values (1);
|
||||
insert into t1 values (2),(3);
|
||||
select * from t1 ORDER BY n;
|
||||
[on slave]
|
||||
select * from t1 order by n;
|
||||
n
|
||||
1
|
||||
2
|
||||
3
|
||||
drop table t1;
|
||||
create table t1(a int primary key);
|
||||
insert into t1 values (1),(2);
|
||||
delete from t1 where @@server_id=1;
|
||||
==== Test With sql_mode=strict_trans_tables ====
|
||||
insert into t1 values (7),(8);
|
||||
[on master]
|
||||
set sql_mode=strict_trans_tables;
|
||||
select @@server_id;
|
||||
@@server_id
|
||||
1
|
||||
insert into t1 values (1),(2),(3);
|
||||
select @@server_id;
|
||||
@@server_id
|
||||
2
|
||||
select * from t1;
|
||||
a
|
||||
insert into t1 values (7), (8), (9);
|
||||
[on slave]
|
||||
select * from t1 order by n;
|
||||
n
|
||||
1
|
||||
2
|
||||
3
|
||||
7
|
||||
8
|
||||
SHOW SLAVE STATUS;
|
||||
Slave_IO_State #
|
||||
Master_Host 127.0.0.1
|
||||
@ -68,4 +70,61 @@ Last_IO_Errno #
|
||||
Last_IO_Error #
|
||||
Last_SQL_Errno 0
|
||||
Last_SQL_Error
|
||||
==== Clean Up ====
|
||||
drop table t1;
|
||||
create table t1(a int primary key);
|
||||
insert into t1 values (1),(2);
|
||||
delete from t1 where @@server_id=1;
|
||||
Warnings:
|
||||
Warning 1592 Statement is not safe to log in statement format.
|
||||
set sql_mode=strict_trans_tables;
|
||||
insert into t1 values (7), (8), (9);
|
||||
[on slave]
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
7
|
||||
8
|
||||
9
|
||||
SHOW SLAVE STATUS;
|
||||
Slave_IO_State #
|
||||
Master_Host 127.0.0.1
|
||||
Master_User root
|
||||
Master_Port MASTER_PORT
|
||||
Connect_Retry 1
|
||||
Master_Log_File master-bin.000001
|
||||
Read_Master_Log_Pos #
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File master-bin.000001
|
||||
Slave_IO_Running Yes
|
||||
Slave_SQL_Running Yes
|
||||
Replicate_Do_DB
|
||||
Replicate_Ignore_DB
|
||||
Replicate_Do_Table
|
||||
Replicate_Ignore_Table #
|
||||
Replicate_Wild_Do_Table
|
||||
Replicate_Wild_Ignore_Table
|
||||
Last_Errno 0
|
||||
Last_Error
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos #
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
Until_Log_Pos 0
|
||||
Master_SSL_Allowed No
|
||||
Master_SSL_CA_File
|
||||
Master_SSL_CA_Path
|
||||
Master_SSL_Cert
|
||||
Master_SSL_Cipher
|
||||
Master_SSL_Key
|
||||
Seconds_Behind_Master #
|
||||
Master_SSL_Verify_Server_Cert No
|
||||
Last_IO_Errno #
|
||||
Last_IO_Error #
|
||||
Last_SQL_Errno 0
|
||||
Last_SQL_Error
|
||||
==== Clean Up ====
|
||||
drop table t1;
|
||||
|
@ -4,16 +4,581 @@ reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
set @my_slave_net_timeout =@@global.slave_net_timeout;
|
||||
set global slave_net_timeout=100;
|
||||
set global sql_slave_skip_counter=100;
|
||||
show variables like 'slave_compressed_protocol';
|
||||
Variable_name Value
|
||||
slave_compressed_protocol OFF
|
||||
show variables like 'slave_load_tmpdir';
|
||||
Variable_name Value
|
||||
slave_load_tmpdir SLAVE_LOAD_TMPDIR
|
||||
show variables like 'slave_skip_errors';
|
||||
Variable_name Value
|
||||
slave_skip_errors 3,100,137,643,1752
|
||||
set global slave_net_timeout=default;
|
||||
==== Initialization ====
|
||||
[on master]
|
||||
SET @m_default_week_format= @@global.default_week_format;
|
||||
SET @m_init_slave= @@global.init_slave;
|
||||
SET @m_lc_time_names= @@global.lc_time_names;
|
||||
SET @m_low_priority_updates= @@global.low_priority_updates;
|
||||
SET @m_relay_log_purge= @@global.relay_log_purge;
|
||||
SET @m_slave_exec_mode= @@global.slave_exec_mode;
|
||||
SET @m_sql_mode= @@global.sql_mode;
|
||||
SET @m_sync_binlog= @@global.sync_binlog;
|
||||
[on slave]
|
||||
SET @s_default_week_format= @@global.default_week_format;
|
||||
SET @s_init_slave= @@global.init_slave;
|
||||
SET @s_lc_time_names= @@global.lc_time_names;
|
||||
SET @s_low_priority_updates= @@global.low_priority_updates;
|
||||
SET @s_relay_log_purge= @@global.relay_log_purge;
|
||||
SET @s_slave_exec_mode= @@global.slave_exec_mode;
|
||||
SET @s_sql_mode= @@global.sql_mode;
|
||||
SET @s_sync_binlog= @@global.sync_binlog;
|
||||
SET @@global.relay_log_purge = OFF;
|
||||
SET @@global.sync_binlog = 1000000;
|
||||
SET @@global.slave_exec_mode = 'STRICT';
|
||||
SET @@sql_big_selects = OFF;
|
||||
SET @@last_insert_id = 10;
|
||||
SET @@global.low_priority_updates = OFF;
|
||||
SET @@local.low_priority_updates = OFF;
|
||||
SET @@global.default_week_format = 1;
|
||||
SET @@local.default_week_format = 2;
|
||||
SET @@global.lc_time_names = 'zh_HK';
|
||||
SET @@local.lc_time_names = 'zh_TW';
|
||||
SET @@global.sql_mode = 'ALLOW_INVALID_DATES';
|
||||
SET @@local.sql_mode = 'ANSI_QUOTES,ERROR_FOR_DIVISION_BY_ZERO,HIGH_NOT_PRECEDENCE';
|
||||
SET @user_num = 10;
|
||||
SET @user_text = 'Alunda';
|
||||
[on master]
|
||||
**** Resetting master and slave ****
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
RESET MASTER;
|
||||
START SLAVE;
|
||||
[on slave]
|
||||
SET @@global.init_slave = 'ant';
|
||||
[on master]
|
||||
CREATE TABLE tstmt (id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
truth BOOLEAN,
|
||||
num INT,
|
||||
text VARCHAR(100));
|
||||
CREATE TABLE tproc LIKE tstmt;
|
||||
CREATE TABLE tfunc LIKE tstmt;
|
||||
CREATE TABLE ttrig LIKE tstmt;
|
||||
CREATE TABLE tprep LIKE tstmt;
|
||||
CREATE TABLE trigger_table (text CHAR(4));
|
||||
==== Insert variables directly ====
|
||||
---- global variables ----
|
||||
SET @@global.relay_log_purge = ON;
|
||||
INSERT INTO tstmt(truth) VALUES (@@global.relay_log_purge);
|
||||
SET @@global.relay_log_purge = OFF;
|
||||
INSERT INTO tstmt(truth) VALUES (@@global.relay_log_purge);
|
||||
SET @@global.sync_binlog = 2000000;
|
||||
INSERT INTO tstmt(num) VALUES (@@global.sync_binlog);
|
||||
SET @@global.sync_binlog = 3000000;
|
||||
INSERT INTO tstmt(num) VALUES (@@global.sync_binlog);
|
||||
SET @@global.init_slave = 'bison';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.init_slave);
|
||||
SET @@global.init_slave = 'cat';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.init_slave);
|
||||
SET @@global.slave_exec_mode = 'IDEMPOTENT';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.slave_exec_mode);
|
||||
SET @@global.slave_exec_mode = 'STRICT';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.slave_exec_mode);
|
||||
---- session variables ----
|
||||
SET @@sql_big_selects = ON;
|
||||
INSERT INTO tstmt(truth) VALUES (@@sql_big_selects);
|
||||
SET @@sql_big_selects = OFF;
|
||||
INSERT INTO tstmt(truth) VALUES (@@sql_big_selects);
|
||||
SET @@last_insert_id = 20;
|
||||
INSERT INTO tstmt(num) VALUES (@@last_insert_id);
|
||||
SET @@last_insert_id = 30;
|
||||
INSERT INTO tstmt(num) VALUES (@@last_insert_id);
|
||||
---- global and session variables ----
|
||||
SET @@global.low_priority_updates = ON;
|
||||
SET @@local.low_priority_updates = OFF;
|
||||
INSERT INTO tstmt(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tstmt(truth) VALUES (@@local.low_priority_updates);
|
||||
SET @@global.low_priority_updates = OFF;
|
||||
SET @@local.low_priority_updates = ON;
|
||||
INSERT INTO tstmt(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tstmt(truth) VALUES (@@local.low_priority_updates);
|
||||
SET @@global.default_week_format = 3;
|
||||
SET @@local.default_week_format = 4;
|
||||
INSERT INTO tstmt(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tstmt(num) VALUES (@@local.default_week_format);
|
||||
SET @@global.default_week_format = 5;
|
||||
SET @@local.default_week_format = 6;
|
||||
INSERT INTO tstmt(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tstmt(num) VALUES (@@local.default_week_format);
|
||||
SET @@global.lc_time_names = 'sv_SE';
|
||||
SET @@local.lc_time_names = 'sv_FI';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tstmt(text) VALUES (@@local.lc_time_names);
|
||||
SET @@global.lc_time_names = 'ar_TN';
|
||||
SET @@local.lc_time_names = 'ar_IQ';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tstmt(text) VALUES (@@local.lc_time_names);
|
||||
SET @@global.sql_mode = '';
|
||||
SET @@local.sql_mode = 'IGNORE_SPACE,NO_AUTO_CREATE_USER';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tstmt(text) VALUES (@@local.sql_mode);
|
||||
SET @@global.sql_mode = 'NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION';
|
||||
SET @@local.sql_mode = 'NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tstmt(text) VALUES (@@local.sql_mode);
|
||||
---- user variables ----
|
||||
SET @user_num = 20;
|
||||
INSERT INTO tstmt(num) VALUES (@user_num);
|
||||
SET @user_num = 30;
|
||||
INSERT INTO tstmt(num) VALUES (@user_num);
|
||||
SET @user_text = 'Bergsbrunna';
|
||||
INSERT INTO tstmt(text) VALUES (@user_text);
|
||||
SET @user_text = 'Centrum';
|
||||
INSERT INTO tstmt(text) VALUES (@user_text);
|
||||
==== Insert variables from a stored procedure ====
|
||||
CREATE PROCEDURE proc()
|
||||
BEGIN
|
||||
# GLOBAL
|
||||
# boolean
|
||||
SET @@global.relay_log_purge = ON;
|
||||
INSERT INTO tproc(truth) VALUES (@@global.relay_log_purge);
|
||||
SET @@global.relay_log_purge = OFF;
|
||||
INSERT INTO tproc(truth) VALUES (@@global.relay_log_purge);
|
||||
# numeric
|
||||
SET @@global.sync_binlog = 2000000;
|
||||
INSERT INTO tproc(num) VALUES (@@global.sync_binlog);
|
||||
SET @@global.sync_binlog = 3000000;
|
||||
INSERT INTO tproc(num) VALUES (@@global.sync_binlog);
|
||||
# string
|
||||
SET @@global.init_slave = 'bison';
|
||||
INSERT INTO tproc(text) VALUES (@@global.init_slave);
|
||||
SET @@global.init_slave = 'cat';
|
||||
INSERT INTO tproc(text) VALUES (@@global.init_slave);
|
||||
# enumeration
|
||||
SET @@global.slave_exec_mode = 'IDEMPOTENT';
|
||||
INSERT INTO tproc(text) VALUES (@@global.slave_exec_mode);
|
||||
SET @@global.slave_exec_mode = 'STRICT';
|
||||
INSERT INTO tproc(text) VALUES (@@global.slave_exec_mode);
|
||||
# SESSION
|
||||
# boolean
|
||||
SET @@sql_big_selects = ON;
|
||||
INSERT INTO tproc(truth) VALUES (@@sql_big_selects);
|
||||
SET @@sql_big_selects = OFF;
|
||||
INSERT INTO tproc(truth) VALUES (@@sql_big_selects);
|
||||
# numeric
|
||||
SET @@last_insert_id = 20;
|
||||
INSERT INTO tproc(num) VALUES (@@last_insert_id);
|
||||
SET @@last_insert_id = 30;
|
||||
INSERT INTO tproc(num) VALUES (@@last_insert_id);
|
||||
# BOTH
|
||||
# boolean
|
||||
SET @@global.low_priority_updates = ON;
|
||||
SET @@local.low_priority_updates = OFF;
|
||||
INSERT INTO tproc(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tproc(truth) VALUES (@@local.low_priority_updates);
|
||||
SET @@global.low_priority_updates = OFF;
|
||||
SET @@local.low_priority_updates = ON;
|
||||
INSERT INTO tproc(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tproc(truth) VALUES (@@local.low_priority_updates);
|
||||
# numeric
|
||||
SET @@global.default_week_format = 3;
|
||||
SET @@local.default_week_format = 4;
|
||||
INSERT INTO tproc(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tproc(num) VALUES (@@local.default_week_format);
|
||||
SET @@global.default_week_format = 5;
|
||||
SET @@local.default_week_format = 6;
|
||||
INSERT INTO tproc(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tproc(num) VALUES (@@local.default_week_format);
|
||||
# text
|
||||
SET @@global.lc_time_names = 'sv_SE';
|
||||
SET @@local.lc_time_names = 'sv_FI';
|
||||
INSERT INTO tproc(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tproc(text) VALUES (@@local.lc_time_names);
|
||||
SET @@global.lc_time_names = 'ar_TN';
|
||||
SET @@local.lc_time_names = 'ar_IQ';
|
||||
INSERT INTO tproc(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tproc(text) VALUES (@@local.lc_time_names);
|
||||
# enum
|
||||
SET @@global.sql_mode = '';
|
||||
SET @@local.sql_mode = 'IGNORE_SPACE,NO_AUTO_CREATE_USER';
|
||||
INSERT INTO tproc(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tproc(text) VALUES (@@local.sql_mode);
|
||||
SET @@global.sql_mode = 'NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION';
|
||||
SET @@local.sql_mode = 'NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS';
|
||||
INSERT INTO tproc(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tproc(text) VALUES (@@local.sql_mode);
|
||||
# USER
|
||||
# numeric
|
||||
SET @user_num = 20;
|
||||
INSERT INTO tproc(num) VALUES (@user_num);
|
||||
SET @user_num = 30;
|
||||
INSERT INTO tproc(num) VALUES (@user_num);
|
||||
# string
|
||||
SET @user_text = 'Bergsbrunna';
|
||||
INSERT INTO tproc(text) VALUES (@user_text);
|
||||
SET @user_text = 'Centrum';
|
||||
INSERT INTO tproc(text) VALUES (@user_text);
|
||||
END|
|
||||
CALL proc();
|
||||
==== Insert variables from a stored function ====
|
||||
CREATE FUNCTION func()
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
# GLOBAL
|
||||
# boolean
|
||||
SET @@global.relay_log_purge = ON;
|
||||
INSERT INTO tfunc(truth) VALUES (@@global.relay_log_purge);
|
||||
SET @@global.relay_log_purge = OFF;
|
||||
INSERT INTO tfunc(truth) VALUES (@@global.relay_log_purge);
|
||||
# numeric
|
||||
SET @@global.sync_binlog = 2000000;
|
||||
INSERT INTO tfunc(num) VALUES (@@global.sync_binlog);
|
||||
SET @@global.sync_binlog = 3000000;
|
||||
INSERT INTO tfunc(num) VALUES (@@global.sync_binlog);
|
||||
# string
|
||||
SET @@global.init_slave = 'bison';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.init_slave);
|
||||
SET @@global.init_slave = 'cat';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.init_slave);
|
||||
# enumeration
|
||||
SET @@global.slave_exec_mode = 'IDEMPOTENT';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.slave_exec_mode);
|
||||
SET @@global.slave_exec_mode = 'STRICT';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.slave_exec_mode);
|
||||
# SESSION
|
||||
# boolean
|
||||
SET @@sql_big_selects = ON;
|
||||
INSERT INTO tfunc(truth) VALUES (@@sql_big_selects);
|
||||
SET @@sql_big_selects = OFF;
|
||||
INSERT INTO tfunc(truth) VALUES (@@sql_big_selects);
|
||||
# numeric
|
||||
SET @@last_insert_id = 20;
|
||||
INSERT INTO tfunc(num) VALUES (@@last_insert_id);
|
||||
SET @@last_insert_id = 30;
|
||||
INSERT INTO tfunc(num) VALUES (@@last_insert_id);
|
||||
# BOTH
|
||||
# boolean
|
||||
SET @@global.low_priority_updates = ON;
|
||||
SET @@local.low_priority_updates = OFF;
|
||||
INSERT INTO tfunc(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tfunc(truth) VALUES (@@local.low_priority_updates);
|
||||
SET @@global.low_priority_updates = OFF;
|
||||
SET @@local.low_priority_updates = ON;
|
||||
INSERT INTO tfunc(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tfunc(truth) VALUES (@@local.low_priority_updates);
|
||||
# numeric
|
||||
SET @@global.default_week_format = 3;
|
||||
SET @@local.default_week_format = 4;
|
||||
INSERT INTO tfunc(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tfunc(num) VALUES (@@local.default_week_format);
|
||||
SET @@global.default_week_format = 5;
|
||||
SET @@local.default_week_format = 6;
|
||||
INSERT INTO tfunc(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tfunc(num) VALUES (@@local.default_week_format);
|
||||
# text
|
||||
SET @@global.lc_time_names = 'sv_SE';
|
||||
SET @@local.lc_time_names = 'sv_FI';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tfunc(text) VALUES (@@local.lc_time_names);
|
||||
SET @@global.lc_time_names = 'ar_TN';
|
||||
SET @@local.lc_time_names = 'ar_IQ';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tfunc(text) VALUES (@@local.lc_time_names);
|
||||
# enum
|
||||
SET @@global.sql_mode = '';
|
||||
SET @@local.sql_mode = 'IGNORE_SPACE,NO_AUTO_CREATE_USER';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tfunc(text) VALUES (@@local.sql_mode);
|
||||
SET @@global.sql_mode = 'NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION';
|
||||
SET @@local.sql_mode = 'NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tfunc(text) VALUES (@@local.sql_mode);
|
||||
# USER
|
||||
# numeric
|
||||
SET @user_num = 20;
|
||||
INSERT INTO tfunc(num) VALUES (@user_num);
|
||||
SET @user_num = 30;
|
||||
INSERT INTO tfunc(num) VALUES (@user_num);
|
||||
# string
|
||||
SET @user_text = 'Bergsbrunna';
|
||||
INSERT INTO tfunc(text) VALUES (@user_text);
|
||||
SET @user_text = 'Centrum';
|
||||
INSERT INTO tfunc(text) VALUES (@user_text);
|
||||
RETURN 0;
|
||||
END|
|
||||
SELECT func();
|
||||
func()
|
||||
0
|
||||
==== Insert variables from a trigger ====
|
||||
CREATE TRIGGER trig
|
||||
BEFORE INSERT ON trigger_table
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
# GLOBAL
|
||||
# boolean
|
||||
SET @@global.relay_log_purge = ON;
|
||||
INSERT INTO ttrig(truth) VALUES (@@global.relay_log_purge);
|
||||
SET @@global.relay_log_purge = OFF;
|
||||
INSERT INTO ttrig(truth) VALUES (@@global.relay_log_purge);
|
||||
# numeric
|
||||
SET @@global.sync_binlog = 2000000;
|
||||
INSERT INTO ttrig(num) VALUES (@@global.sync_binlog);
|
||||
SET @@global.sync_binlog = 3000000;
|
||||
INSERT INTO ttrig(num) VALUES (@@global.sync_binlog);
|
||||
# string
|
||||
SET @@global.init_slave = 'bison';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.init_slave);
|
||||
SET @@global.init_slave = 'cat';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.init_slave);
|
||||
# enumeration
|
||||
SET @@global.slave_exec_mode = 'IDEMPOTENT';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.slave_exec_mode);
|
||||
SET @@global.slave_exec_mode = 'STRICT';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.slave_exec_mode);
|
||||
# SESSION
|
||||
# boolean
|
||||
SET @@sql_big_selects = ON;
|
||||
INSERT INTO ttrig(truth) VALUES (@@sql_big_selects);
|
||||
SET @@sql_big_selects = OFF;
|
||||
INSERT INTO ttrig(truth) VALUES (@@sql_big_selects);
|
||||
# numeric
|
||||
SET @@last_insert_id = 20;
|
||||
INSERT INTO ttrig(num) VALUES (@@last_insert_id);
|
||||
SET @@last_insert_id = 30;
|
||||
INSERT INTO ttrig(num) VALUES (@@last_insert_id);
|
||||
# BOTH
|
||||
# boolean
|
||||
SET @@global.low_priority_updates = ON;
|
||||
SET @@local.low_priority_updates = OFF;
|
||||
INSERT INTO ttrig(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO ttrig(truth) VALUES (@@local.low_priority_updates);
|
||||
SET @@global.low_priority_updates = OFF;
|
||||
SET @@local.low_priority_updates = ON;
|
||||
INSERT INTO ttrig(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO ttrig(truth) VALUES (@@local.low_priority_updates);
|
||||
# numeric
|
||||
SET @@global.default_week_format = 3;
|
||||
SET @@local.default_week_format = 4;
|
||||
INSERT INTO ttrig(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO ttrig(num) VALUES (@@local.default_week_format);
|
||||
SET @@global.default_week_format = 5;
|
||||
SET @@local.default_week_format = 6;
|
||||
INSERT INTO ttrig(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO ttrig(num) VALUES (@@local.default_week_format);
|
||||
# text
|
||||
SET @@global.lc_time_names = 'sv_SE';
|
||||
SET @@local.lc_time_names = 'sv_FI';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO ttrig(text) VALUES (@@local.lc_time_names);
|
||||
SET @@global.lc_time_names = 'ar_TN';
|
||||
SET @@local.lc_time_names = 'ar_IQ';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO ttrig(text) VALUES (@@local.lc_time_names);
|
||||
# enum
|
||||
SET @@global.sql_mode = '';
|
||||
SET @@local.sql_mode = 'IGNORE_SPACE,NO_AUTO_CREATE_USER';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO ttrig(text) VALUES (@@local.sql_mode);
|
||||
SET @@global.sql_mode = 'NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION';
|
||||
SET @@local.sql_mode = 'NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO ttrig(text) VALUES (@@local.sql_mode);
|
||||
# USER
|
||||
# numeric
|
||||
SET @user_num = 20;
|
||||
INSERT INTO ttrig(num) VALUES (@user_num);
|
||||
SET @user_num = 30;
|
||||
INSERT INTO ttrig(num) VALUES (@user_num);
|
||||
# string
|
||||
SET @user_text = 'Bergsbrunna';
|
||||
INSERT INTO ttrig(text) VALUES (@user_text);
|
||||
SET @user_text = 'Centrum';
|
||||
INSERT INTO ttrig(text) VALUES (@user_text);
|
||||
END|
|
||||
INSERT INTO trigger_table VALUES ('bye.');
|
||||
==== Insert variables from a prepared statement ====
|
||||
PREPARE p1 FROM 'SET @@global.relay_log_purge = ON';
|
||||
PREPARE p2 FROM 'INSERT INTO tprep(truth) VALUES (@@global.relay_log_purge)';
|
||||
PREPARE p3 FROM 'SET @@global.relay_log_purge = OFF';
|
||||
PREPARE p4 FROM 'INSERT INTO tprep(truth) VALUES (@@global.relay_log_purge)';
|
||||
PREPARE p5 FROM 'SET @@global.sync_binlog = 2000000';
|
||||
PREPARE p6 FROM 'INSERT INTO tprep(num) VALUES (@@global.sync_binlog)';
|
||||
PREPARE p7 FROM 'SET @@global.sync_binlog = 3000000';
|
||||
PREPARE p8 FROM 'INSERT INTO tprep(num) VALUES (@@global.sync_binlog)';
|
||||
PREPARE p9 FROM 'SET @@global.init_slave = \'bison\'';
|
||||
PREPARE p10 FROM 'INSERT INTO tprep(text) VALUES (@@global.init_slave)';
|
||||
PREPARE p11 FROM 'SET @@global.init_slave = \'cat\'';
|
||||
PREPARE p12 FROM 'INSERT INTO tprep(text) VALUES (@@global.init_slave)';
|
||||
PREPARE p13 FROM 'SET @@global.slave_exec_mode = \'IDEMPOTENT\'';
|
||||
PREPARE p14 FROM 'INSERT INTO tprep(text) VALUES (@@global.slave_exec_mode)';
|
||||
PREPARE p15 FROM 'SET @@global.slave_exec_mode = \'STRICT\'';
|
||||
PREPARE p16 FROM 'INSERT INTO tprep(text) VALUES (@@global.slave_exec_mode)';
|
||||
PREPARE p17 FROM 'SET @@sql_big_selects = ON';
|
||||
PREPARE p18 FROM 'INSERT INTO tprep(truth) VALUES (@@sql_big_selects)';
|
||||
PREPARE p19 FROM 'SET @@sql_big_selects = OFF';
|
||||
PREPARE p20 FROM 'INSERT INTO tprep(truth) VALUES (@@sql_big_selects)';
|
||||
PREPARE p21 FROM 'SET @@last_insert_id = 20';
|
||||
PREPARE p22 FROM 'INSERT INTO tprep(num) VALUES (@@last_insert_id)';
|
||||
PREPARE p23 FROM 'SET @@last_insert_id = 30';
|
||||
PREPARE p24 FROM 'INSERT INTO tprep(num) VALUES (@@last_insert_id)';
|
||||
PREPARE p25 FROM 'SET @@global.low_priority_updates = ON';
|
||||
PREPARE p26 FROM 'SET @@local.low_priority_updates = OFF';
|
||||
PREPARE p27 FROM 'INSERT INTO tprep(truth) VALUES (@@global.low_priority_updates)';
|
||||
PREPARE p28 FROM 'INSERT INTO tprep(truth) VALUES (@@local.low_priority_updates)';
|
||||
PREPARE p29 FROM 'SET @@global.low_priority_updates = OFF';
|
||||
PREPARE p30 FROM 'SET @@local.low_priority_updates = ON';
|
||||
PREPARE p31 FROM 'INSERT INTO tprep(truth) VALUES (@@global.low_priority_updates)';
|
||||
PREPARE p32 FROM 'INSERT INTO tprep(truth) VALUES (@@local.low_priority_updates)';
|
||||
PREPARE p33 FROM 'SET @@global.default_week_format = 3';
|
||||
PREPARE p34 FROM 'SET @@local.default_week_format = 4';
|
||||
PREPARE p35 FROM 'INSERT INTO tprep(num) VALUES (@@global.default_week_format)';
|
||||
PREPARE p36 FROM 'INSERT INTO tprep(num) VALUES (@@local.default_week_format)';
|
||||
PREPARE p37 FROM 'SET @@global.default_week_format = 5';
|
||||
PREPARE p38 FROM 'SET @@local.default_week_format = 6';
|
||||
PREPARE p39 FROM 'INSERT INTO tprep(num) VALUES (@@global.default_week_format)';
|
||||
PREPARE p40 FROM 'INSERT INTO tprep(num) VALUES (@@local.default_week_format)';
|
||||
PREPARE p41 FROM 'SET @@global.lc_time_names = \'sv_SE\'';
|
||||
PREPARE p42 FROM 'SET @@local.lc_time_names = \'sv_FI\'';
|
||||
PREPARE p43 FROM 'INSERT INTO tprep(text) VALUES (@@global.lc_time_names)';
|
||||
PREPARE p44 FROM 'INSERT INTO tprep(text) VALUES (@@local.lc_time_names)';
|
||||
PREPARE p45 FROM 'SET @@global.lc_time_names = \'ar_TN\'';
|
||||
PREPARE p46 FROM 'SET @@local.lc_time_names = \'ar_IQ\'';
|
||||
PREPARE p47 FROM 'INSERT INTO tprep(text) VALUES (@@global.lc_time_names)';
|
||||
PREPARE p48 FROM 'INSERT INTO tprep(text) VALUES (@@local.lc_time_names)';
|
||||
PREPARE p49 FROM 'SET @@global.sql_mode = \'\'';
|
||||
PREPARE p50 FROM 'SET @@local.sql_mode = \'IGNORE_SPACE,NO_AUTO_CREATE_USER\'';
|
||||
PREPARE p51 FROM 'INSERT INTO tprep(text) VALUES (@@global.sql_mode)';
|
||||
PREPARE p52 FROM 'INSERT INTO tprep(text) VALUES (@@local.sql_mode)';
|
||||
PREPARE p53 FROM 'SET @@global.sql_mode = \'NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION\'';
|
||||
PREPARE p54 FROM 'SET @@local.sql_mode = \'NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS\'';
|
||||
PREPARE p55 FROM 'INSERT INTO tprep(text) VALUES (@@global.sql_mode)';
|
||||
PREPARE p56 FROM 'INSERT INTO tprep(text) VALUES (@@local.sql_mode)';
|
||||
PREPARE p57 FROM 'SET @user_num = 20';
|
||||
PREPARE p58 FROM 'INSERT INTO tprep(num) VALUES (@user_num)';
|
||||
PREPARE p59 FROM 'SET @user_num = 30';
|
||||
PREPARE p60 FROM 'INSERT INTO tprep(num) VALUES (@user_num)';
|
||||
PREPARE p61 FROM 'SET @user_text = \'Bergsbrunna\'';
|
||||
PREPARE p62 FROM 'INSERT INTO tprep(text) VALUES (@user_text)';
|
||||
PREPARE p63 FROM 'SET @user_text = \'Centrum\'';
|
||||
PREPARE p64 FROM 'INSERT INTO tprep(text) VALUES (@user_text)';
|
||||
EXECUTE p1;
|
||||
EXECUTE p2;
|
||||
EXECUTE p3;
|
||||
EXECUTE p4;
|
||||
EXECUTE p5;
|
||||
EXECUTE p6;
|
||||
EXECUTE p7;
|
||||
EXECUTE p8;
|
||||
EXECUTE p9;
|
||||
EXECUTE p10;
|
||||
EXECUTE p11;
|
||||
EXECUTE p12;
|
||||
EXECUTE p13;
|
||||
EXECUTE p14;
|
||||
EXECUTE p15;
|
||||
EXECUTE p16;
|
||||
EXECUTE p17;
|
||||
EXECUTE p18;
|
||||
EXECUTE p19;
|
||||
EXECUTE p20;
|
||||
EXECUTE p21;
|
||||
EXECUTE p22;
|
||||
EXECUTE p23;
|
||||
EXECUTE p24;
|
||||
EXECUTE p25;
|
||||
EXECUTE p26;
|
||||
EXECUTE p27;
|
||||
EXECUTE p28;
|
||||
EXECUTE p29;
|
||||
EXECUTE p30;
|
||||
EXECUTE p31;
|
||||
EXECUTE p32;
|
||||
EXECUTE p33;
|
||||
EXECUTE p34;
|
||||
EXECUTE p35;
|
||||
EXECUTE p36;
|
||||
EXECUTE p37;
|
||||
EXECUTE p38;
|
||||
EXECUTE p39;
|
||||
EXECUTE p40;
|
||||
EXECUTE p41;
|
||||
EXECUTE p42;
|
||||
EXECUTE p43;
|
||||
EXECUTE p44;
|
||||
EXECUTE p45;
|
||||
EXECUTE p46;
|
||||
EXECUTE p47;
|
||||
EXECUTE p48;
|
||||
EXECUTE p49;
|
||||
EXECUTE p50;
|
||||
EXECUTE p51;
|
||||
EXECUTE p52;
|
||||
EXECUTE p53;
|
||||
EXECUTE p54;
|
||||
EXECUTE p55;
|
||||
EXECUTE p56;
|
||||
EXECUTE p57;
|
||||
EXECUTE p58;
|
||||
EXECUTE p59;
|
||||
EXECUTE p60;
|
||||
EXECUTE p61;
|
||||
EXECUTE p62;
|
||||
EXECUTE p63;
|
||||
EXECUTE p64;
|
||||
==== Results ====
|
||||
SELECT * FROM tstmt ORDER BY id;
|
||||
id truth num text
|
||||
1 1 NULL NULL
|
||||
2 0 NULL NULL
|
||||
3 NULL 2000000 NULL
|
||||
4 NULL 3000000 NULL
|
||||
5 NULL NULL bison
|
||||
6 NULL NULL cat
|
||||
7 NULL NULL IDEMPOTENT
|
||||
8 NULL NULL STRICT
|
||||
9 1 NULL NULL
|
||||
10 0 NULL NULL
|
||||
11 NULL 20 NULL
|
||||
12 NULL 30 NULL
|
||||
13 1 NULL NULL
|
||||
14 0 NULL NULL
|
||||
15 0 NULL NULL
|
||||
16 1 NULL NULL
|
||||
17 NULL 3 NULL
|
||||
18 NULL 4 NULL
|
||||
19 NULL 5 NULL
|
||||
20 NULL 6 NULL
|
||||
21 NULL NULL sv_SE
|
||||
22 NULL NULL sv_FI
|
||||
23 NULL NULL ar_TN
|
||||
24 NULL NULL ar_IQ
|
||||
25 NULL NULL
|
||||
26 NULL NULL IGNORE_SPACE,NO_AUTO_CREATE_USER
|
||||
27 NULL NULL NO_DIR_IN_CREATE,NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_ENGINE_SUBSTITUTION
|
||||
28 NULL NULL NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS
|
||||
29 NULL 20 NULL
|
||||
30 NULL 30 NULL
|
||||
31 NULL NULL Bergsbrunna
|
||||
32 NULL NULL Centrum
|
||||
Comparing tables master:test.tstmt and master:test.tproc
|
||||
Comparing tables master:test.tstmt and master:test.tfunc
|
||||
Comparing tables master:test.tstmt and master:test.ttrig
|
||||
Comparing tables master:test.tstmt and master:test.tprep
|
||||
Comparing tables master:test.tstmt and slave:test.tstmt
|
||||
Comparing tables master:test.tstmt and slave:test.tproc
|
||||
Comparing tables master:test.tstmt and slave:test.tfunc
|
||||
Comparing tables master:test.tstmt and slave:test.ttrig
|
||||
Comparing tables master:test.tstmt and slave:test.tprep
|
||||
==== Clean up ====
|
||||
[on master]
|
||||
DROP PROCEDURE proc;
|
||||
DROP FUNCTION func;
|
||||
DROP TRIGGER trig;
|
||||
DROP TABLE tstmt, tproc, tfunc, ttrig, tprep, trigger_table;
|
||||
SET @@global.default_week_format= @m_default_week_format;
|
||||
SET @@global.init_slave= @m_init_slave;
|
||||
SET @@global.lc_time_names= @m_lc_time_names;
|
||||
SET @@global.low_priority_updates= @m_low_priority_updates;
|
||||
SET @@global.relay_log_purge= @m_relay_log_purge;
|
||||
SET @@global.slave_exec_mode= @m_slave_exec_mode;
|
||||
SET @@global.sql_mode= @m_sql_mode;
|
||||
SET @@global.sync_binlog= @m_sync_binlog;
|
||||
[on slave]
|
||||
SET @@global.default_week_format= @s_default_week_format;
|
||||
SET @@global.init_slave= @s_init_slave;
|
||||
SET @@global.lc_time_names= @s_lc_time_names;
|
||||
SET @@global.low_priority_updates= @s_low_priority_updates;
|
||||
SET @@global.relay_log_purge= @s_relay_log_purge;
|
||||
SET @@global.slave_exec_mode= @s_slave_exec_mode;
|
||||
SET @@global.sql_mode= @s_sql_mode;
|
||||
SET @@global.sync_binlog= @s_sync_binlog;
|
||||
|
526
mysql-test/suite/rpl/r/rpl_variables_stm.result
Normal file
526
mysql-test/suite/rpl/r/rpl_variables_stm.result
Normal file
@ -0,0 +1,526 @@
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
==== Initialization ====
|
||||
[on master]
|
||||
SET @m_pseudo_thread_id= @@global.pseudo_thread_id;
|
||||
SET @m_auto_increment_increment= @@global.auto_increment_increment;
|
||||
SET @m_auto_increment_offset= @@global.auto_increment_offset;
|
||||
SET @m_character_set_client= @@global.character_set_client;
|
||||
SET @m_collation_connection= @@global.collation_connection;
|
||||
SET @m_collation_server= @@global.collation_server;
|
||||
SET @m_time_zone= @@global.time_zone;
|
||||
SET @m_lc_time_names= @@global.lc_time_names;
|
||||
SET @m_collation_database= @@global.collation_database;
|
||||
[on slave]
|
||||
SET @s_pseudo_thread_id= @@global.pseudo_thread_id;
|
||||
SET @s_auto_increment_increment= @@global.auto_increment_increment;
|
||||
SET @s_auto_increment_offset= @@global.auto_increment_offset;
|
||||
SET @s_character_set_client= @@global.character_set_client;
|
||||
SET @s_collation_connection= @@global.collation_connection;
|
||||
SET @s_collation_server= @@global.collation_server;
|
||||
SET @s_time_zone= @@global.time_zone;
|
||||
SET @s_lc_time_names= @@global.lc_time_names;
|
||||
SET @s_collation_database= @@global.collation_database;
|
||||
SET @@global.pseudo_thread_id= 4711;
|
||||
SET @@global.auto_increment_increment=19;
|
||||
SET @@global.auto_increment_offset=4;
|
||||
SET @@global.character_set_client='latin2';
|
||||
SET @@global.collation_connection='latin2_bin';
|
||||
SET @@global.collation_server='geostd8_general_ci';
|
||||
SET @@global.time_zone='Japan';
|
||||
SET @@global.lc_time_names='sv_SE';
|
||||
SET @@global.collation_database='geostd8_bin';
|
||||
[on master]
|
||||
CREATE TABLE tstmt (id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
num INT,
|
||||
text VARCHAR(100));
|
||||
CREATE TABLE tproc LIKE tstmt;
|
||||
CREATE TABLE tfunc LIKE tstmt;
|
||||
CREATE TABLE ttrig LIKE tstmt;
|
||||
CREATE TABLE tprep LIKE tstmt;
|
||||
CREATE TABLE trigger_table (text CHAR(4));
|
||||
==== Insert variables directly ====
|
||||
SET @@pseudo_thread_id= 4712;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@pseudo_thread_id= 4713;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@foreign_key_checks= 0;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@foreign_key_checks= 1;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@sql_auto_is_null= 0;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@sql_auto_is_null= 1;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@unique_checks= 0;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.unique_checks);
|
||||
SET @@unique_checks= 1;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.unique_checks);
|
||||
SET @@auto_increment_increment= 11;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_increment= 19;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_offset= 13;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_offset);
|
||||
SET @@auto_increment_offset= 17;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_offset);
|
||||
SET @@auto_increment_increment= 1;
|
||||
SET @@auto_increment_offset= 1;
|
||||
SET @@character_set_client= 'cp1257';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_client);
|
||||
SET @@character_set_client= 'cp1256';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_client);
|
||||
SET @@collation_connection= 'cp1251_ukrainian_ci';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_connection= 'cp1251_bulgarian_ci';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_server= 'latin7_bin';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_server);
|
||||
SET @@collation_server= 'latin7_general_cs';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_server);
|
||||
SET @@time_zone= 'Europe/Moscow';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.time_zone);
|
||||
SET @@time_zone= 'Universal';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.time_zone);
|
||||
SET @@lc_time_names= 'sv_FI';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.lc_time_names);
|
||||
SET @@lc_time_names= 'no_NO';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.lc_time_names);
|
||||
SET @@collation_database= 'latin7_general_ci';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_database);
|
||||
SET @@collation_database= 'latin7_estonian_cs';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_database);
|
||||
SET @@timestamp= 47114711;
|
||||
INSERT INTO tstmt(text) VALUES (@@session.timestamp);
|
||||
SET @@timestamp= 47124712;
|
||||
INSERT INTO tstmt(text) VALUES (@@session.timestamp);
|
||||
SET @@last_insert_id= 1616;
|
||||
INSERT INTO tstmt(text) VALUES (@@session.last_insert_id);
|
||||
SET @@last_insert_id= 1717;
|
||||
INSERT INTO tstmt(text) VALUES (@@session.last_insert_id);
|
||||
==== Insert variables from a stored procedure ====
|
||||
CREATE PROCEDURE proc()
|
||||
BEGIN
|
||||
SET @@pseudo_thread_id= 4712;
|
||||
INSERT INTO tproc(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@pseudo_thread_id= 4713;
|
||||
INSERT INTO tproc(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@foreign_key_checks= 0;
|
||||
INSERT INTO tproc(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@foreign_key_checks= 1;
|
||||
INSERT INTO tproc(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@sql_auto_is_null= 0;
|
||||
INSERT INTO tproc(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@sql_auto_is_null= 1;
|
||||
INSERT INTO tproc(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@unique_checks= 0;
|
||||
INSERT INTO tproc(num) VALUES (@@session.unique_checks);
|
||||
SET @@unique_checks= 1;
|
||||
INSERT INTO tproc(num) VALUES (@@session.unique_checks);
|
||||
SET @@auto_increment_increment= 11;
|
||||
INSERT INTO tproc(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_increment= 19;
|
||||
INSERT INTO tproc(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_offset= 13;
|
||||
INSERT INTO tproc(num) VALUES (@@session.auto_increment_offset);
|
||||
SET @@auto_increment_offset= 17;
|
||||
INSERT INTO tproc(num) VALUES (@@session.auto_increment_offset);
|
||||
# reset these as they affect the index column
|
||||
SET @@auto_increment_increment= 1;
|
||||
SET @@auto_increment_offset= 1;
|
||||
SET @@character_set_client= 'cp1257';
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_client);
|
||||
SET @@character_set_client= 'cp1256';
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_client);
|
||||
SET @@collation_connection= 'cp1251_ukrainian_ci';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_connection= 'cp1251_bulgarian_ci';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_server= 'latin7_bin';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_server);
|
||||
SET @@collation_server= 'latin7_general_cs';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_server);
|
||||
SET @@time_zone= 'Europe/Moscow';
|
||||
INSERT INTO tproc(text) VALUES (@@session.time_zone);
|
||||
SET @@time_zone= 'Universal';
|
||||
INSERT INTO tproc(text) VALUES (@@session.time_zone);
|
||||
SET @@lc_time_names= 'sv_FI';
|
||||
INSERT INTO tproc(text) VALUES (@@session.lc_time_names);
|
||||
SET @@lc_time_names= 'no_NO';
|
||||
INSERT INTO tproc(text) VALUES (@@session.lc_time_names);
|
||||
SET @@collation_database= 'latin7_general_ci';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_database);
|
||||
SET @@collation_database= 'latin7_estonian_cs';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_database);
|
||||
SET @@timestamp= 47114711;
|
||||
INSERT INTO tproc(text) VALUES (@@session.timestamp);
|
||||
SET @@timestamp= 47124712;
|
||||
INSERT INTO tproc(text) VALUES (@@session.timestamp);
|
||||
SET @@last_insert_id= 1616;
|
||||
INSERT INTO tproc(text) VALUES (@@session.last_insert_id);
|
||||
SET @@last_insert_id= 1717;
|
||||
INSERT INTO tproc(text) VALUES (@@session.last_insert_id);
|
||||
END|
|
||||
CALL proc();
|
||||
==== Insert variables from a stored function ====
|
||||
CREATE FUNCTION func()
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
SET @@pseudo_thread_id= 4712;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@pseudo_thread_id= 4713;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@foreign_key_checks= 0;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@foreign_key_checks= 1;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@sql_auto_is_null= 0;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@sql_auto_is_null= 1;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@unique_checks= 0;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.unique_checks);
|
||||
SET @@unique_checks= 1;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.unique_checks);
|
||||
SET @@auto_increment_increment= 11;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_increment= 19;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_offset= 13;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_offset);
|
||||
SET @@auto_increment_offset= 17;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_offset);
|
||||
# reset these as they affect the index column
|
||||
SET @@auto_increment_increment= 1;
|
||||
SET @@auto_increment_offset= 1;
|
||||
SET @@character_set_client= 'cp1257';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_client);
|
||||
SET @@character_set_client= 'cp1256';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_client);
|
||||
SET @@collation_connection= 'cp1251_ukrainian_ci';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_connection= 'cp1251_bulgarian_ci';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_server= 'latin7_bin';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_server);
|
||||
SET @@collation_server= 'latin7_general_cs';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_server);
|
||||
SET @@time_zone= 'Europe/Moscow';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.time_zone);
|
||||
SET @@time_zone= 'Universal';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.time_zone);
|
||||
SET @@lc_time_names= 'sv_FI';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.lc_time_names);
|
||||
SET @@lc_time_names= 'no_NO';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.lc_time_names);
|
||||
SET @@collation_database= 'latin7_general_ci';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_database);
|
||||
SET @@collation_database= 'latin7_estonian_cs';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_database);
|
||||
SET @@timestamp= 47114711;
|
||||
INSERT INTO tfunc(text) VALUES (@@session.timestamp);
|
||||
SET @@timestamp= 47124712;
|
||||
INSERT INTO tfunc(text) VALUES (@@session.timestamp);
|
||||
SET @@last_insert_id= 1616;
|
||||
INSERT INTO tfunc(text) VALUES (@@session.last_insert_id);
|
||||
SET @@last_insert_id= 1717;
|
||||
INSERT INTO tfunc(text) VALUES (@@session.last_insert_id);
|
||||
RETURN 0;
|
||||
END|
|
||||
SELECT func();
|
||||
func()
|
||||
0
|
||||
==== Insert variables from a trigger ====
|
||||
CREATE TRIGGER trig
|
||||
BEFORE INSERT ON trigger_table
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
SET @@pseudo_thread_id= 4712;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@pseudo_thread_id= 4713;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@foreign_key_checks= 0;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@foreign_key_checks= 1;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@sql_auto_is_null= 0;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@sql_auto_is_null= 1;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@unique_checks= 0;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.unique_checks);
|
||||
SET @@unique_checks= 1;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.unique_checks);
|
||||
SET @@auto_increment_increment= 11;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_increment= 19;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_offset= 13;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_offset);
|
||||
SET @@auto_increment_offset= 17;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_offset);
|
||||
# reset these as they affect the index column
|
||||
SET @@auto_increment_increment= 1;
|
||||
SET @@auto_increment_offset= 1;
|
||||
SET @@character_set_client= 'cp1257';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_client);
|
||||
SET @@character_set_client= 'cp1256';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_client);
|
||||
SET @@collation_connection= 'cp1251_ukrainian_ci';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_connection= 'cp1251_bulgarian_ci';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_server= 'latin7_bin';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_server);
|
||||
SET @@collation_server= 'latin7_general_cs';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_server);
|
||||
SET @@time_zone= 'Europe/Moscow';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.time_zone);
|
||||
SET @@time_zone= 'Universal';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.time_zone);
|
||||
SET @@lc_time_names= 'sv_FI';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.lc_time_names);
|
||||
SET @@lc_time_names= 'no_NO';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.lc_time_names);
|
||||
SET @@collation_database= 'latin7_general_ci';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_database);
|
||||
SET @@collation_database= 'latin7_estonian_cs';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_database);
|
||||
SET @@timestamp= 47114711;
|
||||
INSERT INTO ttrig(text) VALUES (@@session.timestamp);
|
||||
SET @@timestamp= 47124712;
|
||||
INSERT INTO ttrig(text) VALUES (@@session.timestamp);
|
||||
SET @@last_insert_id= 1616;
|
||||
INSERT INTO ttrig(text) VALUES (@@session.last_insert_id);
|
||||
SET @@last_insert_id= 1717;
|
||||
INSERT INTO ttrig(text) VALUES (@@session.last_insert_id);
|
||||
END|
|
||||
INSERT INTO trigger_table VALUES ('bye.');
|
||||
==== Insert variables from a prepared statement ====
|
||||
PREPARE p1 FROM 'SET @@pseudo_thread_id= 4712';
|
||||
PREPARE p2 FROM 'INSERT INTO tprep(num) VALUES (@@session.pseudo_thread_id)';
|
||||
PREPARE p3 FROM 'SET @@pseudo_thread_id= 4713';
|
||||
PREPARE p4 FROM 'INSERT INTO tprep(num) VALUES (@@session.pseudo_thread_id)';
|
||||
PREPARE p5 FROM 'SET @@foreign_key_checks= 0';
|
||||
PREPARE p6 FROM 'INSERT INTO tprep(num) VALUES (@@session.foreign_key_checks)';
|
||||
PREPARE p7 FROM 'SET @@foreign_key_checks= 1';
|
||||
PREPARE p8 FROM 'INSERT INTO tprep(num) VALUES (@@session.foreign_key_checks)';
|
||||
PREPARE p9 FROM 'SET @@sql_auto_is_null= 0';
|
||||
PREPARE p10 FROM 'INSERT INTO tprep(num) VALUES (@@session.sql_auto_is_null)';
|
||||
PREPARE p11 FROM 'SET @@sql_auto_is_null= 1';
|
||||
PREPARE p12 FROM 'INSERT INTO tprep(num) VALUES (@@session.sql_auto_is_null)';
|
||||
PREPARE p13 FROM 'SET @@unique_checks= 0';
|
||||
PREPARE p14 FROM 'INSERT INTO tprep(num) VALUES (@@session.unique_checks)';
|
||||
PREPARE p15 FROM 'SET @@unique_checks= 1';
|
||||
PREPARE p16 FROM 'INSERT INTO tprep(num) VALUES (@@session.unique_checks)';
|
||||
PREPARE p17 FROM 'SET @@auto_increment_increment= 11';
|
||||
PREPARE p18 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_increment)';
|
||||
PREPARE p19 FROM 'SET @@auto_increment_increment= 19';
|
||||
PREPARE p20 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_increment)';
|
||||
PREPARE p21 FROM 'SET @@auto_increment_offset= 13';
|
||||
PREPARE p22 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_offset)';
|
||||
PREPARE p23 FROM 'SET @@auto_increment_offset= 17';
|
||||
PREPARE p24 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_offset)';
|
||||
PREPARE p25 FROM 'SET @@auto_increment_increment= 1';
|
||||
PREPARE p26 FROM 'SET @@auto_increment_offset= 1';
|
||||
PREPARE p27 FROM 'SET @@character_set_client= \'cp1257\'';
|
||||
PREPARE p28 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_client)';
|
||||
PREPARE p29 FROM 'SET @@character_set_client= \'cp1256\'';
|
||||
PREPARE p30 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_client)';
|
||||
PREPARE p31 FROM 'SET @@collation_connection= \'cp1251_ukrainian_ci\'';
|
||||
PREPARE p32 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_connection)';
|
||||
PREPARE p33 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_connection)';
|
||||
PREPARE p34 FROM 'SET @@collation_connection= \'cp1251_bulgarian_ci\'';
|
||||
PREPARE p35 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_connection)';
|
||||
PREPARE p36 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_connection)';
|
||||
PREPARE p37 FROM 'SET @@collation_server= \'latin7_bin\'';
|
||||
PREPARE p38 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_server)';
|
||||
PREPARE p39 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_server)';
|
||||
PREPARE p40 FROM 'SET @@collation_server= \'latin7_general_cs\'';
|
||||
PREPARE p41 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_server)';
|
||||
PREPARE p42 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_server)';
|
||||
PREPARE p43 FROM 'SET @@time_zone= \'Europe/Moscow\'';
|
||||
PREPARE p44 FROM 'INSERT INTO tprep(text) VALUES (@@session.time_zone)';
|
||||
PREPARE p45 FROM 'SET @@time_zone= \'Universal\'';
|
||||
PREPARE p46 FROM 'INSERT INTO tprep(text) VALUES (@@session.time_zone)';
|
||||
PREPARE p47 FROM 'SET @@lc_time_names= \'sv_FI\'';
|
||||
PREPARE p48 FROM 'INSERT INTO tprep(text) VALUES (@@session.lc_time_names)';
|
||||
PREPARE p49 FROM 'SET @@lc_time_names= \'no_NO\'';
|
||||
PREPARE p50 FROM 'INSERT INTO tprep(text) VALUES (@@session.lc_time_names)';
|
||||
PREPARE p51 FROM 'SET @@collation_database= \'latin7_general_ci\'';
|
||||
PREPARE p52 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_database)';
|
||||
PREPARE p53 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_database)';
|
||||
PREPARE p54 FROM 'SET @@collation_database= \'latin7_estonian_cs\'';
|
||||
PREPARE p55 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_database)';
|
||||
PREPARE p56 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_database)';
|
||||
PREPARE p57 FROM 'SET @@timestamp= 47114711';
|
||||
PREPARE p58 FROM 'INSERT INTO tprep(text) VALUES (@@session.timestamp)';
|
||||
PREPARE p59 FROM 'SET @@timestamp= 47124712';
|
||||
PREPARE p60 FROM 'INSERT INTO tprep(text) VALUES (@@session.timestamp)';
|
||||
PREPARE p61 FROM 'SET @@last_insert_id= 1616';
|
||||
PREPARE p62 FROM 'INSERT INTO tprep(text) VALUES (@@session.last_insert_id)';
|
||||
PREPARE p63 FROM 'SET @@last_insert_id= 1717';
|
||||
PREPARE p64 FROM 'INSERT INTO tprep(text) VALUES (@@session.last_insert_id)';
|
||||
EXECUTE p1;
|
||||
EXECUTE p2;
|
||||
EXECUTE p3;
|
||||
EXECUTE p4;
|
||||
EXECUTE p5;
|
||||
EXECUTE p6;
|
||||
EXECUTE p7;
|
||||
EXECUTE p8;
|
||||
EXECUTE p9;
|
||||
EXECUTE p10;
|
||||
EXECUTE p11;
|
||||
EXECUTE p12;
|
||||
EXECUTE p13;
|
||||
EXECUTE p14;
|
||||
EXECUTE p15;
|
||||
EXECUTE p16;
|
||||
EXECUTE p17;
|
||||
EXECUTE p18;
|
||||
EXECUTE p19;
|
||||
EXECUTE p20;
|
||||
EXECUTE p21;
|
||||
EXECUTE p22;
|
||||
EXECUTE p23;
|
||||
EXECUTE p24;
|
||||
EXECUTE p25;
|
||||
EXECUTE p26;
|
||||
EXECUTE p27;
|
||||
EXECUTE p28;
|
||||
EXECUTE p29;
|
||||
EXECUTE p30;
|
||||
EXECUTE p31;
|
||||
EXECUTE p32;
|
||||
EXECUTE p33;
|
||||
EXECUTE p34;
|
||||
EXECUTE p35;
|
||||
EXECUTE p36;
|
||||
EXECUTE p37;
|
||||
EXECUTE p38;
|
||||
EXECUTE p39;
|
||||
EXECUTE p40;
|
||||
EXECUTE p41;
|
||||
EXECUTE p42;
|
||||
EXECUTE p43;
|
||||
EXECUTE p44;
|
||||
EXECUTE p45;
|
||||
EXECUTE p46;
|
||||
EXECUTE p47;
|
||||
EXECUTE p48;
|
||||
EXECUTE p49;
|
||||
EXECUTE p50;
|
||||
EXECUTE p51;
|
||||
EXECUTE p52;
|
||||
EXECUTE p53;
|
||||
EXECUTE p54;
|
||||
EXECUTE p55;
|
||||
EXECUTE p56;
|
||||
EXECUTE p57;
|
||||
EXECUTE p58;
|
||||
EXECUTE p59;
|
||||
EXECUTE p60;
|
||||
EXECUTE p61;
|
||||
EXECUTE p62;
|
||||
EXECUTE p63;
|
||||
EXECUTE p64;
|
||||
==== Results ====
|
||||
SELECT * FROM tstmt ORDER BY id;
|
||||
id num text
|
||||
1 4712 NULL
|
||||
2 4713 NULL
|
||||
3 0 NULL
|
||||
4 1 NULL
|
||||
5 0 NULL
|
||||
6 1 NULL
|
||||
7 0 NULL
|
||||
8 1 NULL
|
||||
12 11 NULL
|
||||
20 19 NULL
|
||||
32 13 NULL
|
||||
36 17 NULL
|
||||
37 NULL cp1257
|
||||
38 NULL cp1256
|
||||
39 NULL cp1251_ukrainian_ci
|
||||
40 NULL cp1251
|
||||
41 NULL cp1251_bulgarian_ci
|
||||
42 NULL cp1251
|
||||
43 NULL latin7_bin
|
||||
44 NULL latin7
|
||||
45 NULL latin7_general_cs
|
||||
46 NULL latin7
|
||||
47 NULL Europe/Moscow
|
||||
48 NULL Universal
|
||||
49 NULL sv_FI
|
||||
50 NULL no_NO
|
||||
51 NULL latin7_general_ci
|
||||
52 NULL latin7
|
||||
53 NULL latin7_estonian_cs
|
||||
54 NULL latin7
|
||||
55 NULL 47114711
|
||||
56 NULL 47124712
|
||||
57 NULL 1616
|
||||
58 NULL 1717
|
||||
Comparing tables master:test.tstmt and master:test.tproc
|
||||
Comparing tables master:test.tstmt and master:test.tfunc
|
||||
Comparing tables master:test.tstmt and master:test.ttrig
|
||||
Comparing tables master:test.tstmt and master:test.tprep
|
||||
Comparing tables master:test.tstmt and slave:test.tstmt
|
||||
Comparing tables master:test.tstmt and slave:test.tproc
|
||||
Comparing tables master:test.tstmt and slave:test.tfunc
|
||||
Comparing tables master:test.tstmt and slave:test.ttrig
|
||||
Comparing tables master:test.tstmt and slave:test.tprep
|
||||
==== Clean up ====
|
||||
[on master]
|
||||
DROP PROCEDURE proc;
|
||||
DROP FUNCTION func;
|
||||
DROP TRIGGER trig;
|
||||
DROP TABLE tstmt, tproc, tfunc, ttrig, tprep, trigger_table;
|
||||
SET @@global.pseudo_thread_id= @m_pseudo_thread_id;
|
||||
SET @@global.auto_increment_increment= @m_auto_increment_increment;
|
||||
SET @@global.auto_increment_offset= @m_auto_increment_offset;
|
||||
SET @@global.character_set_client= @m_character_set_client;
|
||||
SET @@global.collation_connection= @m_collation_connection;
|
||||
SET @@global.collation_server= @m_collation_server;
|
||||
SET @@global.time_zone= @m_time_zone;
|
||||
SET @@global.lc_time_names= @m_lc_time_names;
|
||||
SET @@global.collation_database= @m_collation_database;
|
||||
[on slave]
|
||||
SET @@global.pseudo_thread_id= @s_pseudo_thread_id;
|
||||
SET @@global.auto_increment_increment= @s_auto_increment_increment;
|
||||
SET @@global.auto_increment_offset= @s_auto_increment_offset;
|
||||
SET @@global.character_set_client= @s_character_set_client;
|
||||
SET @@global.collation_connection= @s_collation_connection;
|
||||
SET @@global.collation_server= @s_collation_server;
|
||||
SET @@global.time_zone= @s_time_zone;
|
||||
SET @@global.lc_time_names= @s_lc_time_names;
|
||||
SET @@global.collation_database= @s_collation_database;
|
1
mysql-test/suite/rpl/t/rpl_bug33931-slave.opt
Normal file
1
mysql-test/suite/rpl/t/rpl_bug33931-slave.opt
Normal file
@ -0,0 +1 @@
|
||||
--loose-debug=d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on_init
|
37
mysql-test/suite/rpl/t/rpl_bug33931.test
Normal file
37
mysql-test/suite/rpl/t/rpl_bug33931.test
Normal file
@ -0,0 +1,37 @@
|
||||
# Test for
|
||||
# Bug #33931 assertion at write_ignored_events_info_to_relay_log if init_slave_thread() fails
|
||||
# Bug #33932 assertion at handle_slave_sql if init_slave_thread() fails
|
||||
|
||||
source include/have_debug.inc;
|
||||
source include/have_log_bin.inc;
|
||||
|
||||
connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
|
||||
connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,);
|
||||
|
||||
|
||||
connection master;
|
||||
reset master;
|
||||
|
||||
connection slave;
|
||||
--disable_warnings
|
||||
stop slave;
|
||||
--enable_warnings
|
||||
reset slave;
|
||||
start slave;
|
||||
|
||||
connection master;
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
|
||||
#
|
||||
# slave is going to stop because of emulated failures
|
||||
# but there won't be any crashes nor asserts hit.
|
||||
#
|
||||
source include/wait_for_slave_to_stop.inc;
|
||||
|
||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||
--replace_column 1 # 8 # 9 # 23 # 33 #
|
||||
query_vertical show slave status;
|
||||
|
||||
# no clean-up is needed
|
||||
|
@ -15,8 +15,10 @@ connection master;
|
||||
insert into t1 values(1);
|
||||
insert into t1 values(2);
|
||||
save_master_pos;
|
||||
let $slave_param= Read_Master_Log_Pos;
|
||||
let $slave_param_value= query_get_value(SHOW MASTER STATUS, Position, 1);
|
||||
connection slave;
|
||||
--real_sleep 3 # wait for I/O thread to have read updates
|
||||
source include/wait_for_slave_param.inc;
|
||||
stop slave;
|
||||
source include/show_slave_status2.inc;
|
||||
change master to master_user='root';
|
||||
|
@ -6,19 +6,25 @@
|
||||
# to work around NDB's issue with temp tables
|
||||
##############################################
|
||||
source include/master-slave.inc;
|
||||
source include/have_binlog_format_mixed_or_statement.inc;
|
||||
|
||||
--disable_warnings
|
||||
create database if not exists mysqltest;
|
||||
--enable_warnings
|
||||
|
||||
create temporary table mysqltest.t1 (n int)ENGINE=MyISAM;
|
||||
create temporary table mysqltest.t2 (n int)ENGINE=MyISAM;
|
||||
sync_slave_with_master;
|
||||
|
||||
connection master;
|
||||
disconnect master;
|
||||
connection slave;
|
||||
--real_sleep 3 # time for DROP to be written
|
||||
show status like 'Slave_open_temp_tables';
|
||||
|
||||
connection master1;
|
||||
# Wait until drop of temp tables appears in binlog
|
||||
let $wait_binlog_event= DROP;
|
||||
source include/wait_for_binlog_event.inc;
|
||||
|
||||
sync_slave_with_master;
|
||||
show status like 'Slave_open_temp_tables';
|
||||
# Cleanup
|
||||
connection default;
|
||||
drop database mysqltest;
|
||||
|
@ -35,12 +35,35 @@ let $result_pattern= '%127.0.0.1%root%slave-bin.000001%slave-bin.000001%Yes%Yes%
|
||||
#
|
||||
# Flush logs of slave
|
||||
#
|
||||
flush logs;
|
||||
sleep 5;
|
||||
# Create full loop by following way:
|
||||
# 1. Insert into t1 on master (1st).
|
||||
# 2. Insert into t1 on slave (2nd) when the event (1st) for t1 replicated.
|
||||
# 3. Master waits until the event (2nd) for t1 will be replicated.
|
||||
|
||||
--disable_query_log
|
||||
CREATE TABLE t1 (a INT KEY) ENGINE= MyISAM;
|
||||
let $wait_binlog_event= CREATE TABLE t1;
|
||||
--source include/wait_for_binlog_event.inc
|
||||
sync_slave_with_master;
|
||||
connection master;
|
||||
INSERT INTO t1 VALUE(1);
|
||||
--enable_query_log
|
||||
FLUSH LOGS;
|
||||
connection slave;
|
||||
let $wait_condition= SELECT COUNT(*) = 1 FROM t1;
|
||||
-- source include/wait_condition.inc
|
||||
--disable_query_log
|
||||
INSERT INTO t1 VALUE(2);
|
||||
--enable_query_log
|
||||
connection master;
|
||||
let $wait_condition= SELECT COUNT(*) = 2 FROM t1;
|
||||
-- source include/wait_condition.inc
|
||||
--enable_query_log
|
||||
|
||||
#
|
||||
# Show status of slave
|
||||
#
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
let $pos= query_get_value(SHOW SLAVE STATUS, Read_Master_Log_Pos, 1);
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT $pos POSITION
|
||||
--replace_column 1 # 8 # 9 # 16 # 23 # 33 # 34 # 35 #
|
||||
--query_vertical SHOW SLAVE STATUS
|
||||
|
@ -201,11 +201,16 @@ SET GLOBAL EVENT_SCHEDULER = off;
|
||||
|
||||
# Check original objects
|
||||
--echo
|
||||
--sorted_result
|
||||
SHOW TABLES LIKE 't%';
|
||||
SELECT table_name FROM information_schema.views WHERE table_schema='test' ORDER BY table_name;
|
||||
SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test' ORDER BY trigger_name;
|
||||
SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test' ORDER BY routine_name;
|
||||
SELECT event_name, status FROM information_schema.events WHERE event_schema='test' ORDER BY event_name;
|
||||
--sorted_result
|
||||
SELECT table_name FROM information_schema.views WHERE table_schema='test';
|
||||
--sorted_result
|
||||
SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test';
|
||||
--sorted_result
|
||||
SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test';
|
||||
--sorted_result
|
||||
SELECT event_name, status FROM information_schema.events WHERE event_schema='test';
|
||||
|
||||
# Check original data
|
||||
--echo
|
||||
@ -228,11 +233,16 @@ SELECT a,b FROM v11 ORDER BY a;
|
||||
|
||||
# Check replicated objects
|
||||
--echo
|
||||
--sorted_result
|
||||
SHOW TABLES LIKE 't%';
|
||||
SELECT table_name FROM information_schema.views WHERE table_schema='test' ORDER BY table_name;
|
||||
SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test' ORDER BY trigger_name;
|
||||
SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test' ORDER BY routine_name;
|
||||
SELECT event_name, status FROM information_schema.events WHERE event_schema='test' ORDER BY event_name;
|
||||
--sorted_result
|
||||
SELECT table_name FROM information_schema.views WHERE table_schema='test';
|
||||
--sorted_result
|
||||
SELECT trigger_name, event_manipulation, event_object_table FROM information_schema.triggers WHERE trigger_schema='test';
|
||||
--sorted_result
|
||||
SELECT routine_type, routine_name FROM information_schema.routines WHERE routine_schema='test';
|
||||
--sorted_result
|
||||
SELECT event_name, status FROM information_schema.events WHERE event_schema='test';
|
||||
|
||||
# Check replicated data
|
||||
--echo
|
||||
|
@ -15,4 +15,15 @@ stop slave sql_thread;
|
||||
connection slave;
|
||||
reap;
|
||||
|
||||
#
|
||||
# bug#26622 MASTER_POS_WAIT does not work as documented
|
||||
#
|
||||
|
||||
connection master;
|
||||
echo "*** must be empty ***";
|
||||
query_vertical show slave status;
|
||||
|
||||
echo "*** must be NULL ***";
|
||||
select master_pos_wait('foo', 98);
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@ -14,23 +14,10 @@ connection slave;
|
||||
reset slave;
|
||||
start slave io_thread;
|
||||
# Give the I/O thread time to block.
|
||||
let $run= 1;
|
||||
let $counter= 300;
|
||||
while ($run)
|
||||
{
|
||||
let $io_state= query_get_value("SHOW SLAVE STATUS", Slave_IO_State, 1);
|
||||
if (`SELECT '$io_state' = 'Waiting for the slave SQL thread to free enough relay log space'`){
|
||||
let $run= 0;
|
||||
}
|
||||
sleep 0.1;
|
||||
if (!$counter){
|
||||
--echo "Failed while waiting for slave IO thread block"
|
||||
SHOW SLAVE STATUS;
|
||||
exit;
|
||||
}
|
||||
dec $counter;
|
||||
}
|
||||
sleep 2;
|
||||
let $slave_param= Slave_IO_State;
|
||||
let $slave_param_value= Waiting for the slave SQL thread to free enough relay log space;
|
||||
source include/wait_for_slave_param.inc;
|
||||
|
||||
# A bug caused the I/O thread to refuse stopping.
|
||||
stop slave io_thread;
|
||||
reset slave;
|
||||
|
2
mysql-test/suite/rpl/t/rpl_report-slave.opt
Normal file
2
mysql-test/suite/rpl/t/rpl_report-slave.opt
Normal file
@ -0,0 +1,2 @@
|
||||
--report-host=127.0.0.1 --report-user='my_user' --report-password='my_password' --report-port=9308
|
||||
|
21
mysql-test/suite/rpl/t/rpl_report.test
Normal file
21
mysql-test/suite/rpl/t/rpl_report.test
Normal file
@ -0,0 +1,21 @@
|
||||
# Verify that mysqld init time --report-{host,port,user,password} parameters
|
||||
# are SHOW-able and SELECT-able FROM INFORMATION_SCHEMA.global_variables
|
||||
|
||||
source include/master-slave.inc;
|
||||
|
||||
connection slave;
|
||||
select * from Information_schema.GLOBAL_VARIABLES where variable_name like 'report_host';
|
||||
select * from Information_schema.GLOBAL_VARIABLES where variable_name like 'report_port';
|
||||
select * from Information_schema.GLOBAL_VARIABLES where variable_name like 'report_user';
|
||||
select * from Information_schema.GLOBAL_VARIABLES where variable_name like 'report_password';
|
||||
query_vertical show global variables like 'report_host';
|
||||
query_vertical show global variables like 'report_port';
|
||||
query_vertical show global variables like 'report_user';
|
||||
query_vertical show global variables like 'report_password';
|
||||
|
||||
# to demonstrate that report global variables are read-only
|
||||
error ER_INCORRECT_GLOBAL_LOCAL_VAR;
|
||||
set @@global.report_host='my.new.address.net';
|
||||
|
||||
|
||||
--echo end of tests
|
@ -23,6 +23,7 @@ DROP TABLE IF EXISTS mysqltest1.t3;
|
||||
DROP TABLE IF EXISTS mysqltest1.t1;
|
||||
DROP TABLE IF EXISTS mysqltest1.t2;
|
||||
DROP TABLE IF EXISTS mysqltest1.t4;
|
||||
DROP TABLE IF EXISTS mysqltest1.t10;
|
||||
|
||||
# Begin test section 1
|
||||
CREATE TABLE mysqltest1.t1 (a INT, c CHAR(6),PRIMARY KEY(a));
|
||||
@ -43,12 +44,18 @@ CREATE VIEW mysqltest1.v4 AS SELECT * FROM mysqltest1.v3 WHERE a > 1 WITH LOCAL
|
||||
|
||||
SELECT * FROM mysqltest1.v2;
|
||||
SELECT * FROM mysqltest1.v1;
|
||||
# Had to add a sleep for use with NDB
|
||||
|
||||
|
||||
# Had to add a waiting for use with NDB
|
||||
# engine. Injector thread would have not
|
||||
# populated biblog and data would not be on
|
||||
# populated binlog and data would not be on
|
||||
# the slave.
|
||||
sleep 10;
|
||||
sync_slave_with_master;
|
||||
|
||||
CREATE TABLE mysqltest1.t10 (a INT, PRIMARY KEY(a));
|
||||
let $wait_binlog_event= CREATE TABLE mysqltest1.t10;
|
||||
-- source include/wait_for_binlog_event.inc
|
||||
--sync_slave_with_master
|
||||
|
||||
SELECT * FROM mysqltest1.v2;
|
||||
SELECT * FROM mysqltest1.v1;
|
||||
connection master;
|
||||
@ -82,6 +89,7 @@ DROP TABLE IF EXISTS mysqltest1.t3;
|
||||
DROP TABLE IF EXISTS mysqltest1.t1;
|
||||
DROP TABLE IF EXISTS mysqltest1.t2;
|
||||
DROP TABLE IF EXISTS mysqltest1.t4;
|
||||
DROP TABLE IF EXISTS mysqltest1.t10;
|
||||
DROP DATABASE mysqltest1;
|
||||
sync_slave_with_master;
|
||||
|
||||
|
@ -6,21 +6,20 @@
|
||||
|
||||
source include/master-slave.inc;
|
||||
connection slave;
|
||||
create table t1 (n int);
|
||||
reset master;
|
||||
|
||||
# replicate ourselves
|
||||
stop slave;
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
eval change master to master_port=$SLAVE_MYPORT;
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
--replace_column 16 # 18 # 35 # 36 #
|
||||
query_vertical show slave status;
|
||||
start slave;
|
||||
insert into t1 values (1);
|
||||
# can't MASTER_POS_WAIT(), it does not work in this weird setup
|
||||
# (when slave is its own master without --replicate-same-server-id)
|
||||
sleep 2; # enough time for the event to be replicated (it should not)
|
||||
show status like "slave_running";
|
||||
drop table t1;
|
||||
|
||||
--echo *** must be having the replicate-same-server-id IO thread error ***
|
||||
|
||||
source include/wait_for_slave_io_to_stop.inc;
|
||||
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
--replace_column 12 # 16 # 19 # 20 # 18 # 37 # 38 #
|
||||
query_vertical show slave status;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@ -1,39 +1,61 @@
|
||||
##########################################
|
||||
# 2006-02-07 By JBM: Added order by
|
||||
#########################################
|
||||
# Note that errors are ignored by opt file.
|
||||
# ==== Purpose ====
|
||||
#
|
||||
# Verify that --slave-skip-errors works correctly. The error messages
|
||||
# specified by --slave-skip-errors on slave should be ignored. If
|
||||
# such errors occur, they should not be reported and not cause the
|
||||
# slave to stop.
|
||||
#
|
||||
# ==== Method ====
|
||||
#
|
||||
# We run the slave with --slave-skip-errors=1062 (the code for
|
||||
# duplicate key). On slave, we insert value 1 in a table, and then,
|
||||
# on master, we insert value 1 in the table. The error should be
|
||||
# ignored on slave.
|
||||
#
|
||||
# ==== Related bugs ====
|
||||
#
|
||||
# BUG#28839: Errors in strict mode silently stop SQL thread if --slave-skip-errors exists
|
||||
# bug in this test: BUG#30594: rpl.rpl_skip_error is nondeterministic
|
||||
|
||||
source include/master-slave.inc;
|
||||
source include/have_binlog_format_mixed_or_statement.inc;
|
||||
source include/have_binlog_format_statement.inc;
|
||||
|
||||
#
|
||||
# Bug #30594
|
||||
# Skipping error due to applying Row-based repliation events
|
||||
# should be checked with another test file
|
||||
# consider names like rpl_row_skip_error
|
||||
#
|
||||
|
||||
--echo ==== Test Without sql_mode=strict_trans_tables ====
|
||||
|
||||
--echo [on master]
|
||||
create table t1 (n int not null primary key);
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
sync_with_master;
|
||||
|
||||
--echo [on slave]
|
||||
sync_slave_with_master;
|
||||
insert into t1 values (1);
|
||||
|
||||
--echo [on master]
|
||||
connection master;
|
||||
# Here we expect (ignored) error, since 1 is already in slave table
|
||||
insert into t1 values (1);
|
||||
|
||||
# These should work fine
|
||||
insert into t1 values (2),(3);
|
||||
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
sync_with_master;
|
||||
select * from t1 ORDER BY n;
|
||||
sync_slave_with_master;
|
||||
--echo [on slave]
|
||||
select * from t1 order by n;
|
||||
|
||||
# Cleanup
|
||||
--echo ==== Test With sql_mode=strict_trans_tables ====
|
||||
insert into t1 values (7),(8);
|
||||
--echo [on master]
|
||||
connection master;
|
||||
set sql_mode=strict_trans_tables;
|
||||
insert into t1 values (7), (8), (9);
|
||||
--echo [on slave]
|
||||
sync_slave_with_master;
|
||||
select * from t1 order by n;
|
||||
source include/show_slave_status2.inc;
|
||||
|
||||
--echo ==== Clean Up ====
|
||||
connection master;
|
||||
drop table t1;
|
||||
sync_slave_with_master;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
@ -44,14 +66,17 @@ create table t1(a int primary key);
|
||||
insert into t1 values (1),(2);
|
||||
delete from t1 where @@server_id=1;
|
||||
set sql_mode=strict_trans_tables;
|
||||
select @@server_id;
|
||||
insert into t1 values (1),(2),(3);
|
||||
insert into t1 values (7), (8), (9);
|
||||
|
||||
--echo [on slave]
|
||||
sync_slave_with_master;
|
||||
connection slave;
|
||||
select @@server_id;
|
||||
select * from t1;
|
||||
source include/show_slave_status2.inc;
|
||||
|
||||
|
||||
--echo ==== Clean Up ====
|
||||
|
||||
connection master;
|
||||
drop table t1;
|
||||
sync_with_master;
|
||||
sync_slave_with_master;
|
||||
# End of 5.0 tests
|
||||
|
@ -50,9 +50,10 @@ show slave status;
|
||||
connection slave;
|
||||
drop table t1;
|
||||
delete from mysql.user where user='rpl';
|
||||
# cleanup: slave io thread has been stopped "irrecoverably"
|
||||
# so we clean up mess manually
|
||||
|
||||
connection master;
|
||||
drop table t1;
|
||||
|
||||
# end of test case for BUG#10780
|
||||
|
||||
# end of 4.1 tests
|
||||
|
@ -132,7 +132,7 @@ drop table t1,t2;
|
||||
# don't get any memory leaks for this
|
||||
|
||||
create temporary table t3 (f int);
|
||||
sync_with_master;
|
||||
sync_slave_with_master;
|
||||
|
||||
# The server will now close done
|
||||
|
||||
@ -143,7 +143,8 @@ sync_with_master;
|
||||
connection master;
|
||||
create temporary table t4 (f int);
|
||||
create table t5 (f int);
|
||||
sync_with_master;
|
||||
sync_slave_with_master;
|
||||
connection master;
|
||||
# find dumper's $id
|
||||
select id from information_schema.processlist where command='Binlog Dump' into @id;
|
||||
kill @id; # to stimulate reconnection by slave w/o timeout
|
||||
|
@ -27,7 +27,12 @@ show status like 'Slave_open_temp_tables';
|
||||
|
||||
# Disconnect the master, temp table on slave should dissapear
|
||||
disconnect master;
|
||||
--real_sleep 3 # time for DROP to be read by slave
|
||||
|
||||
connection master1;
|
||||
# Wait until drop of temp tables appers in binlog
|
||||
let $wait_binlog_event= DROP;
|
||||
source include/wait_for_binlog_event.inc;
|
||||
|
||||
connection slave;
|
||||
show status like 'Slave_open_temp_tables';
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
--slave-skip-errors=3,100,137,643,1752
|
@ -1,20 +1,739 @@
|
||||
# ==== Purpose ====
|
||||
#
|
||||
# Test that queries referencing variables are replicated correctly in
|
||||
# mixed and row-based logging mode.
|
||||
#
|
||||
#
|
||||
# ==== Method ====
|
||||
#
|
||||
# The test simply does a lot of "INSERT INTO t1 VALUES (@@variable)"
|
||||
# and checks the result on the slave.
|
||||
#
|
||||
# Statements referencing a variable only replicate correctly in mixed
|
||||
# and row mode: in row mode, the values inserted are replicated. In
|
||||
# mixed mode, statements referencing a variable are marked as unsafe,
|
||||
# meaning they will be replicated by row. In statement mode, the
|
||||
# slave's value will be used and replication will break. (Except in a
|
||||
# small number of special cases: random seeds, insert_id, and
|
||||
# auto_increment are replicated).
|
||||
#
|
||||
# We test the following variable scopes:
|
||||
# - server system variables
|
||||
# - server session variables
|
||||
# - server "both" variables
|
||||
# - user variables
|
||||
#
|
||||
# For each scope, we use variables of the following types if they
|
||||
# exist:
|
||||
# - boolean
|
||||
# - numeric
|
||||
# - string
|
||||
# - enumeration variables
|
||||
#
|
||||
# We use these types of variables in the following contexts:
|
||||
# - directly
|
||||
# - from a stored procedure
|
||||
# - from a stored function
|
||||
# - from a trigger
|
||||
# - from a prepared statement
|
||||
#
|
||||
# For all variables where it is possible, we set the variable to one
|
||||
# value on slave, and insert it on the master with two distinct
|
||||
# values.
|
||||
#
|
||||
# The same insertions are made in four different tables using direct
|
||||
# insert, stored procedure, stored function, or trigger. Then all
|
||||
# eight resulting tables on master and slave are compared.
|
||||
#
|
||||
#
|
||||
# ==== Related bugs ====
|
||||
#
|
||||
# BUG#31168: @@hostname does not replicate
|
||||
#
|
||||
#
|
||||
# ==== Related test cases ====
|
||||
#
|
||||
# binlog.binlog_unsafe tests that a warning is issued if system
|
||||
# variables are replicated in statement mode.
|
||||
#
|
||||
# rpl.rpl_variables_stm tests the small subset of variables that
|
||||
# actually can be replicated safely in statement mode.
|
||||
|
||||
|
||||
source include/master-slave.inc;
|
||||
source include/have_binlog_format_mixed_or_row.inc;
|
||||
|
||||
# Init for rstore of variable values
|
||||
set @my_slave_net_timeout =@@global.slave_net_timeout;
|
||||
|
||||
set global slave_net_timeout=100;
|
||||
set global sql_slave_skip_counter=100;
|
||||
--echo ==== Initialization ====
|
||||
|
||||
# End of 4.1 tests
|
||||
# Backup the values of global variables so that they can be restored
|
||||
# later.
|
||||
--echo [on master]
|
||||
connection master;
|
||||
SET @m_default_week_format= @@global.default_week_format;
|
||||
SET @m_init_slave= @@global.init_slave;
|
||||
SET @m_lc_time_names= @@global.lc_time_names;
|
||||
SET @m_low_priority_updates= @@global.low_priority_updates;
|
||||
SET @m_relay_log_purge= @@global.relay_log_purge;
|
||||
SET @m_slave_exec_mode= @@global.slave_exec_mode;
|
||||
SET @m_sql_mode= @@global.sql_mode;
|
||||
SET @m_sync_binlog= @@global.sync_binlog;
|
||||
|
||||
# BUG #7800: Add various-slave related variables to SHOW VARIABLES
|
||||
show variables like 'slave_compressed_protocol';
|
||||
--replace_column 2 SLAVE_LOAD_TMPDIR
|
||||
show variables like 'slave_load_tmpdir';
|
||||
# We just set some arbitrary values in variables-master.opt so we can test
|
||||
# that a list of values works correctly
|
||||
show variables like 'slave_skip_errors';
|
||||
--echo [on slave]
|
||||
connection slave;
|
||||
SET @s_default_week_format= @@global.default_week_format;
|
||||
SET @s_init_slave= @@global.init_slave;
|
||||
SET @s_lc_time_names= @@global.lc_time_names;
|
||||
SET @s_low_priority_updates= @@global.low_priority_updates;
|
||||
SET @s_relay_log_purge= @@global.relay_log_purge;
|
||||
SET @s_slave_exec_mode= @@global.slave_exec_mode;
|
||||
SET @s_sql_mode= @@global.sql_mode;
|
||||
SET @s_sync_binlog= @@global.sync_binlog;
|
||||
|
||||
# Cleanup
|
||||
set global slave_net_timeout=default;
|
||||
# Set global variables on slave to something different than on master.
|
||||
SET @@global.relay_log_purge = OFF;
|
||||
SET @@global.sync_binlog = 1000000;
|
||||
SET @@global.slave_exec_mode = 'STRICT';
|
||||
SET @@sql_big_selects = OFF;
|
||||
SET @@last_insert_id = 10;
|
||||
SET @@global.low_priority_updates = OFF;
|
||||
SET @@local.low_priority_updates = OFF;
|
||||
SET @@global.default_week_format = 1;
|
||||
SET @@local.default_week_format = 2;
|
||||
SET @@global.lc_time_names = 'zh_HK';
|
||||
SET @@local.lc_time_names = 'zh_TW';
|
||||
SET @@global.sql_mode = 'ALLOW_INVALID_DATES';
|
||||
SET @@local.sql_mode = 'ANSI_QUOTES,ERROR_FOR_DIVISION_BY_ZERO,HIGH_NOT_PRECEDENCE';
|
||||
SET @user_num = 10;
|
||||
SET @user_text = 'Alunda';
|
||||
|
||||
# Stop slave so that we get a fresh sql thread, reading the slave's
|
||||
# global values of variables into its local copies.
|
||||
--echo [on master]
|
||||
connection master;
|
||||
source include/reset_master_and_slave.inc;
|
||||
|
||||
# We would have wanted to set this together with the other variables
|
||||
# above, but can't because it affects how the slave works.
|
||||
--echo [on slave]
|
||||
connection slave;
|
||||
SET @@global.init_slave = 'ant';
|
||||
|
||||
|
||||
--echo [on master]
|
||||
connection master;
|
||||
|
||||
# Tables where everything happens.
|
||||
CREATE TABLE tstmt (id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
truth BOOLEAN,
|
||||
num INT,
|
||||
text VARCHAR(100));
|
||||
CREATE TABLE tproc LIKE tstmt;
|
||||
CREATE TABLE tfunc LIKE tstmt;
|
||||
CREATE TABLE ttrig LIKE tstmt;
|
||||
CREATE TABLE tprep LIKE tstmt;
|
||||
|
||||
# Table on which we put a trigger.
|
||||
CREATE TABLE trigger_table (text CHAR(4));
|
||||
|
||||
|
||||
--echo ==== Insert variables directly ====
|
||||
|
||||
--echo ---- global variables ----
|
||||
|
||||
# boolean
|
||||
SET @@global.relay_log_purge = ON;
|
||||
INSERT INTO tstmt(truth) VALUES (@@global.relay_log_purge);
|
||||
SET @@global.relay_log_purge = OFF;
|
||||
INSERT INTO tstmt(truth) VALUES (@@global.relay_log_purge);
|
||||
|
||||
# numeric
|
||||
SET @@global.sync_binlog = 2000000;
|
||||
INSERT INTO tstmt(num) VALUES (@@global.sync_binlog);
|
||||
SET @@global.sync_binlog = 3000000;
|
||||
INSERT INTO tstmt(num) VALUES (@@global.sync_binlog);
|
||||
|
||||
# string
|
||||
SET @@global.init_slave = 'bison';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.init_slave);
|
||||
SET @@global.init_slave = 'cat';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.init_slave);
|
||||
|
||||
# enumeration
|
||||
SET @@global.slave_exec_mode = 'IDEMPOTENT';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.slave_exec_mode);
|
||||
SET @@global.slave_exec_mode = 'STRICT';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.slave_exec_mode);
|
||||
|
||||
|
||||
--echo ---- session variables ----
|
||||
|
||||
# boolean
|
||||
SET @@sql_big_selects = ON;
|
||||
INSERT INTO tstmt(truth) VALUES (@@sql_big_selects);
|
||||
SET @@sql_big_selects = OFF;
|
||||
INSERT INTO tstmt(truth) VALUES (@@sql_big_selects);
|
||||
|
||||
# numeric
|
||||
SET @@last_insert_id = 20;
|
||||
INSERT INTO tstmt(num) VALUES (@@last_insert_id);
|
||||
SET @@last_insert_id = 30;
|
||||
INSERT INTO tstmt(num) VALUES (@@last_insert_id);
|
||||
|
||||
--echo ---- global and session variables ----
|
||||
|
||||
# boolean
|
||||
SET @@global.low_priority_updates = ON;
|
||||
SET @@local.low_priority_updates = OFF;
|
||||
INSERT INTO tstmt(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tstmt(truth) VALUES (@@local.low_priority_updates);
|
||||
SET @@global.low_priority_updates = OFF;
|
||||
SET @@local.low_priority_updates = ON;
|
||||
INSERT INTO tstmt(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tstmt(truth) VALUES (@@local.low_priority_updates);
|
||||
|
||||
# numeric
|
||||
SET @@global.default_week_format = 3;
|
||||
SET @@local.default_week_format = 4;
|
||||
INSERT INTO tstmt(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tstmt(num) VALUES (@@local.default_week_format);
|
||||
SET @@global.default_week_format = 5;
|
||||
SET @@local.default_week_format = 6;
|
||||
INSERT INTO tstmt(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tstmt(num) VALUES (@@local.default_week_format);
|
||||
|
||||
# string
|
||||
SET @@global.lc_time_names = 'sv_SE';
|
||||
SET @@local.lc_time_names = 'sv_FI';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tstmt(text) VALUES (@@local.lc_time_names);
|
||||
SET @@global.lc_time_names = 'ar_TN';
|
||||
SET @@local.lc_time_names = 'ar_IQ';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tstmt(text) VALUES (@@local.lc_time_names);
|
||||
|
||||
# enum
|
||||
SET @@global.sql_mode = '';
|
||||
SET @@local.sql_mode = 'IGNORE_SPACE,NO_AUTO_CREATE_USER';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tstmt(text) VALUES (@@local.sql_mode);
|
||||
SET @@global.sql_mode = 'NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION';
|
||||
SET @@local.sql_mode = 'NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS';
|
||||
INSERT INTO tstmt(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tstmt(text) VALUES (@@local.sql_mode);
|
||||
|
||||
--echo ---- user variables ----
|
||||
|
||||
# numeric
|
||||
SET @user_num = 20;
|
||||
INSERT INTO tstmt(num) VALUES (@user_num);
|
||||
SET @user_num = 30;
|
||||
INSERT INTO tstmt(num) VALUES (@user_num);
|
||||
|
||||
# string
|
||||
SET @user_text = 'Bergsbrunna';
|
||||
INSERT INTO tstmt(text) VALUES (@user_text);
|
||||
SET @user_text = 'Centrum';
|
||||
INSERT INTO tstmt(text) VALUES (@user_text);
|
||||
|
||||
|
||||
--echo ==== Insert variables from a stored procedure ====
|
||||
|
||||
DELIMITER |;
|
||||
CREATE PROCEDURE proc()
|
||||
BEGIN
|
||||
|
||||
# GLOBAL
|
||||
|
||||
# boolean
|
||||
SET @@global.relay_log_purge = ON;
|
||||
INSERT INTO tproc(truth) VALUES (@@global.relay_log_purge);
|
||||
SET @@global.relay_log_purge = OFF;
|
||||
INSERT INTO tproc(truth) VALUES (@@global.relay_log_purge);
|
||||
|
||||
# numeric
|
||||
SET @@global.sync_binlog = 2000000;
|
||||
INSERT INTO tproc(num) VALUES (@@global.sync_binlog);
|
||||
SET @@global.sync_binlog = 3000000;
|
||||
INSERT INTO tproc(num) VALUES (@@global.sync_binlog);
|
||||
|
||||
# string
|
||||
SET @@global.init_slave = 'bison';
|
||||
INSERT INTO tproc(text) VALUES (@@global.init_slave);
|
||||
SET @@global.init_slave = 'cat';
|
||||
INSERT INTO tproc(text) VALUES (@@global.init_slave);
|
||||
|
||||
# enumeration
|
||||
SET @@global.slave_exec_mode = 'IDEMPOTENT';
|
||||
INSERT INTO tproc(text) VALUES (@@global.slave_exec_mode);
|
||||
SET @@global.slave_exec_mode = 'STRICT';
|
||||
INSERT INTO tproc(text) VALUES (@@global.slave_exec_mode);
|
||||
|
||||
# SESSION
|
||||
|
||||
# boolean
|
||||
SET @@sql_big_selects = ON;
|
||||
INSERT INTO tproc(truth) VALUES (@@sql_big_selects);
|
||||
SET @@sql_big_selects = OFF;
|
||||
INSERT INTO tproc(truth) VALUES (@@sql_big_selects);
|
||||
|
||||
# numeric
|
||||
SET @@last_insert_id = 20;
|
||||
INSERT INTO tproc(num) VALUES (@@last_insert_id);
|
||||
SET @@last_insert_id = 30;
|
||||
INSERT INTO tproc(num) VALUES (@@last_insert_id);
|
||||
|
||||
# BOTH
|
||||
|
||||
# boolean
|
||||
SET @@global.low_priority_updates = ON;
|
||||
SET @@local.low_priority_updates = OFF;
|
||||
INSERT INTO tproc(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tproc(truth) VALUES (@@local.low_priority_updates);
|
||||
SET @@global.low_priority_updates = OFF;
|
||||
SET @@local.low_priority_updates = ON;
|
||||
INSERT INTO tproc(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tproc(truth) VALUES (@@local.low_priority_updates);
|
||||
|
||||
# numeric
|
||||
SET @@global.default_week_format = 3;
|
||||
SET @@local.default_week_format = 4;
|
||||
INSERT INTO tproc(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tproc(num) VALUES (@@local.default_week_format);
|
||||
SET @@global.default_week_format = 5;
|
||||
SET @@local.default_week_format = 6;
|
||||
INSERT INTO tproc(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tproc(num) VALUES (@@local.default_week_format);
|
||||
|
||||
# text
|
||||
SET @@global.lc_time_names = 'sv_SE';
|
||||
SET @@local.lc_time_names = 'sv_FI';
|
||||
INSERT INTO tproc(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tproc(text) VALUES (@@local.lc_time_names);
|
||||
SET @@global.lc_time_names = 'ar_TN';
|
||||
SET @@local.lc_time_names = 'ar_IQ';
|
||||
INSERT INTO tproc(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tproc(text) VALUES (@@local.lc_time_names);
|
||||
|
||||
# enum
|
||||
SET @@global.sql_mode = '';
|
||||
SET @@local.sql_mode = 'IGNORE_SPACE,NO_AUTO_CREATE_USER';
|
||||
INSERT INTO tproc(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tproc(text) VALUES (@@local.sql_mode);
|
||||
SET @@global.sql_mode = 'NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION';
|
||||
SET @@local.sql_mode = 'NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS';
|
||||
INSERT INTO tproc(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tproc(text) VALUES (@@local.sql_mode);
|
||||
|
||||
# USER
|
||||
|
||||
# numeric
|
||||
SET @user_num = 20;
|
||||
INSERT INTO tproc(num) VALUES (@user_num);
|
||||
SET @user_num = 30;
|
||||
INSERT INTO tproc(num) VALUES (@user_num);
|
||||
|
||||
# string
|
||||
SET @user_text = 'Bergsbrunna';
|
||||
INSERT INTO tproc(text) VALUES (@user_text);
|
||||
SET @user_text = 'Centrum';
|
||||
INSERT INTO tproc(text) VALUES (@user_text);
|
||||
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
CALL proc();
|
||||
|
||||
|
||||
--echo ==== Insert variables from a stored function ====
|
||||
|
||||
DELIMITER |;
|
||||
CREATE FUNCTION func()
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
|
||||
# GLOBAL
|
||||
|
||||
# boolean
|
||||
SET @@global.relay_log_purge = ON;
|
||||
INSERT INTO tfunc(truth) VALUES (@@global.relay_log_purge);
|
||||
SET @@global.relay_log_purge = OFF;
|
||||
INSERT INTO tfunc(truth) VALUES (@@global.relay_log_purge);
|
||||
|
||||
# numeric
|
||||
SET @@global.sync_binlog = 2000000;
|
||||
INSERT INTO tfunc(num) VALUES (@@global.sync_binlog);
|
||||
SET @@global.sync_binlog = 3000000;
|
||||
INSERT INTO tfunc(num) VALUES (@@global.sync_binlog);
|
||||
|
||||
# string
|
||||
SET @@global.init_slave = 'bison';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.init_slave);
|
||||
SET @@global.init_slave = 'cat';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.init_slave);
|
||||
|
||||
# enumeration
|
||||
SET @@global.slave_exec_mode = 'IDEMPOTENT';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.slave_exec_mode);
|
||||
SET @@global.slave_exec_mode = 'STRICT';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.slave_exec_mode);
|
||||
|
||||
# SESSION
|
||||
|
||||
# boolean
|
||||
SET @@sql_big_selects = ON;
|
||||
INSERT INTO tfunc(truth) VALUES (@@sql_big_selects);
|
||||
SET @@sql_big_selects = OFF;
|
||||
INSERT INTO tfunc(truth) VALUES (@@sql_big_selects);
|
||||
|
||||
# numeric
|
||||
SET @@last_insert_id = 20;
|
||||
INSERT INTO tfunc(num) VALUES (@@last_insert_id);
|
||||
SET @@last_insert_id = 30;
|
||||
INSERT INTO tfunc(num) VALUES (@@last_insert_id);
|
||||
|
||||
# BOTH
|
||||
|
||||
# boolean
|
||||
SET @@global.low_priority_updates = ON;
|
||||
SET @@local.low_priority_updates = OFF;
|
||||
INSERT INTO tfunc(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tfunc(truth) VALUES (@@local.low_priority_updates);
|
||||
SET @@global.low_priority_updates = OFF;
|
||||
SET @@local.low_priority_updates = ON;
|
||||
INSERT INTO tfunc(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO tfunc(truth) VALUES (@@local.low_priority_updates);
|
||||
|
||||
# numeric
|
||||
SET @@global.default_week_format = 3;
|
||||
SET @@local.default_week_format = 4;
|
||||
INSERT INTO tfunc(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tfunc(num) VALUES (@@local.default_week_format);
|
||||
SET @@global.default_week_format = 5;
|
||||
SET @@local.default_week_format = 6;
|
||||
INSERT INTO tfunc(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO tfunc(num) VALUES (@@local.default_week_format);
|
||||
|
||||
# text
|
||||
SET @@global.lc_time_names = 'sv_SE';
|
||||
SET @@local.lc_time_names = 'sv_FI';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tfunc(text) VALUES (@@local.lc_time_names);
|
||||
SET @@global.lc_time_names = 'ar_TN';
|
||||
SET @@local.lc_time_names = 'ar_IQ';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO tfunc(text) VALUES (@@local.lc_time_names);
|
||||
|
||||
# enum
|
||||
SET @@global.sql_mode = '';
|
||||
SET @@local.sql_mode = 'IGNORE_SPACE,NO_AUTO_CREATE_USER';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tfunc(text) VALUES (@@local.sql_mode);
|
||||
SET @@global.sql_mode = 'NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION';
|
||||
SET @@local.sql_mode = 'NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS';
|
||||
INSERT INTO tfunc(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO tfunc(text) VALUES (@@local.sql_mode);
|
||||
|
||||
# USER
|
||||
|
||||
# numeric
|
||||
SET @user_num = 20;
|
||||
INSERT INTO tfunc(num) VALUES (@user_num);
|
||||
SET @user_num = 30;
|
||||
INSERT INTO tfunc(num) VALUES (@user_num);
|
||||
|
||||
# string
|
||||
SET @user_text = 'Bergsbrunna';
|
||||
INSERT INTO tfunc(text) VALUES (@user_text);
|
||||
SET @user_text = 'Centrum';
|
||||
INSERT INTO tfunc(text) VALUES (@user_text);
|
||||
|
||||
RETURN 0;
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
SELECT func();
|
||||
|
||||
|
||||
--echo ==== Insert variables from a trigger ====
|
||||
|
||||
DELIMITER |;
|
||||
CREATE TRIGGER trig
|
||||
BEFORE INSERT ON trigger_table
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
|
||||
# GLOBAL
|
||||
|
||||
# boolean
|
||||
SET @@global.relay_log_purge = ON;
|
||||
INSERT INTO ttrig(truth) VALUES (@@global.relay_log_purge);
|
||||
SET @@global.relay_log_purge = OFF;
|
||||
INSERT INTO ttrig(truth) VALUES (@@global.relay_log_purge);
|
||||
|
||||
# numeric
|
||||
SET @@global.sync_binlog = 2000000;
|
||||
INSERT INTO ttrig(num) VALUES (@@global.sync_binlog);
|
||||
SET @@global.sync_binlog = 3000000;
|
||||
INSERT INTO ttrig(num) VALUES (@@global.sync_binlog);
|
||||
|
||||
# string
|
||||
SET @@global.init_slave = 'bison';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.init_slave);
|
||||
SET @@global.init_slave = 'cat';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.init_slave);
|
||||
|
||||
# enumeration
|
||||
SET @@global.slave_exec_mode = 'IDEMPOTENT';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.slave_exec_mode);
|
||||
SET @@global.slave_exec_mode = 'STRICT';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.slave_exec_mode);
|
||||
|
||||
# SESSION
|
||||
|
||||
# boolean
|
||||
SET @@sql_big_selects = ON;
|
||||
INSERT INTO ttrig(truth) VALUES (@@sql_big_selects);
|
||||
SET @@sql_big_selects = OFF;
|
||||
INSERT INTO ttrig(truth) VALUES (@@sql_big_selects);
|
||||
|
||||
# numeric
|
||||
SET @@last_insert_id = 20;
|
||||
INSERT INTO ttrig(num) VALUES (@@last_insert_id);
|
||||
SET @@last_insert_id = 30;
|
||||
INSERT INTO ttrig(num) VALUES (@@last_insert_id);
|
||||
|
||||
# BOTH
|
||||
|
||||
# boolean
|
||||
SET @@global.low_priority_updates = ON;
|
||||
SET @@local.low_priority_updates = OFF;
|
||||
INSERT INTO ttrig(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO ttrig(truth) VALUES (@@local.low_priority_updates);
|
||||
SET @@global.low_priority_updates = OFF;
|
||||
SET @@local.low_priority_updates = ON;
|
||||
INSERT INTO ttrig(truth) VALUES (@@global.low_priority_updates);
|
||||
INSERT INTO ttrig(truth) VALUES (@@local.low_priority_updates);
|
||||
|
||||
# numeric
|
||||
SET @@global.default_week_format = 3;
|
||||
SET @@local.default_week_format = 4;
|
||||
INSERT INTO ttrig(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO ttrig(num) VALUES (@@local.default_week_format);
|
||||
SET @@global.default_week_format = 5;
|
||||
SET @@local.default_week_format = 6;
|
||||
INSERT INTO ttrig(num) VALUES (@@global.default_week_format);
|
||||
INSERT INTO ttrig(num) VALUES (@@local.default_week_format);
|
||||
|
||||
# text
|
||||
SET @@global.lc_time_names = 'sv_SE';
|
||||
SET @@local.lc_time_names = 'sv_FI';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO ttrig(text) VALUES (@@local.lc_time_names);
|
||||
SET @@global.lc_time_names = 'ar_TN';
|
||||
SET @@local.lc_time_names = 'ar_IQ';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.lc_time_names);
|
||||
INSERT INTO ttrig(text) VALUES (@@local.lc_time_names);
|
||||
|
||||
# enum
|
||||
SET @@global.sql_mode = '';
|
||||
SET @@local.sql_mode = 'IGNORE_SPACE,NO_AUTO_CREATE_USER';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO ttrig(text) VALUES (@@local.sql_mode);
|
||||
SET @@global.sql_mode = 'NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION';
|
||||
SET @@local.sql_mode = 'NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS';
|
||||
INSERT INTO ttrig(text) VALUES (@@global.sql_mode);
|
||||
INSERT INTO ttrig(text) VALUES (@@local.sql_mode);
|
||||
|
||||
# USER
|
||||
|
||||
# numeric
|
||||
SET @user_num = 20;
|
||||
INSERT INTO ttrig(num) VALUES (@user_num);
|
||||
SET @user_num = 30;
|
||||
INSERT INTO ttrig(num) VALUES (@user_num);
|
||||
|
||||
# string
|
||||
SET @user_text = 'Bergsbrunna';
|
||||
INSERT INTO ttrig(text) VALUES (@user_text);
|
||||
SET @user_text = 'Centrum';
|
||||
INSERT INTO ttrig(text) VALUES (@user_text);
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
INSERT INTO trigger_table VALUES ('bye.');
|
||||
|
||||
|
||||
--echo ==== Insert variables from a prepared statement ====
|
||||
|
||||
# GLOBAL
|
||||
|
||||
# boolean
|
||||
PREPARE p1 FROM 'SET @@global.relay_log_purge = ON';
|
||||
PREPARE p2 FROM 'INSERT INTO tprep(truth) VALUES (@@global.relay_log_purge)';
|
||||
PREPARE p3 FROM 'SET @@global.relay_log_purge = OFF';
|
||||
PREPARE p4 FROM 'INSERT INTO tprep(truth) VALUES (@@global.relay_log_purge)';
|
||||
|
||||
# numeric
|
||||
PREPARE p5 FROM 'SET @@global.sync_binlog = 2000000';
|
||||
PREPARE p6 FROM 'INSERT INTO tprep(num) VALUES (@@global.sync_binlog)';
|
||||
PREPARE p7 FROM 'SET @@global.sync_binlog = 3000000';
|
||||
PREPARE p8 FROM 'INSERT INTO tprep(num) VALUES (@@global.sync_binlog)';
|
||||
|
||||
# string
|
||||
PREPARE p9 FROM 'SET @@global.init_slave = \'bison\'';
|
||||
PREPARE p10 FROM 'INSERT INTO tprep(text) VALUES (@@global.init_slave)';
|
||||
PREPARE p11 FROM 'SET @@global.init_slave = \'cat\'';
|
||||
PREPARE p12 FROM 'INSERT INTO tprep(text) VALUES (@@global.init_slave)';
|
||||
|
||||
# enumeration
|
||||
PREPARE p13 FROM 'SET @@global.slave_exec_mode = \'IDEMPOTENT\'';
|
||||
PREPARE p14 FROM 'INSERT INTO tprep(text) VALUES (@@global.slave_exec_mode)';
|
||||
PREPARE p15 FROM 'SET @@global.slave_exec_mode = \'STRICT\'';
|
||||
PREPARE p16 FROM 'INSERT INTO tprep(text) VALUES (@@global.slave_exec_mode)';
|
||||
|
||||
# SESSION
|
||||
|
||||
# boolean
|
||||
PREPARE p17 FROM 'SET @@sql_big_selects = ON';
|
||||
PREPARE p18 FROM 'INSERT INTO tprep(truth) VALUES (@@sql_big_selects)';
|
||||
PREPARE p19 FROM 'SET @@sql_big_selects = OFF';
|
||||
PREPARE p20 FROM 'INSERT INTO tprep(truth) VALUES (@@sql_big_selects)';
|
||||
|
||||
# numeric
|
||||
PREPARE p21 FROM 'SET @@last_insert_id = 20';
|
||||
PREPARE p22 FROM 'INSERT INTO tprep(num) VALUES (@@last_insert_id)';
|
||||
PREPARE p23 FROM 'SET @@last_insert_id = 30';
|
||||
PREPARE p24 FROM 'INSERT INTO tprep(num) VALUES (@@last_insert_id)';
|
||||
|
||||
# BOTH
|
||||
|
||||
# boolean
|
||||
PREPARE p25 FROM 'SET @@global.low_priority_updates = ON';
|
||||
PREPARE p26 FROM 'SET @@local.low_priority_updates = OFF';
|
||||
PREPARE p27 FROM 'INSERT INTO tprep(truth) VALUES (@@global.low_priority_updates)';
|
||||
PREPARE p28 FROM 'INSERT INTO tprep(truth) VALUES (@@local.low_priority_updates)';
|
||||
PREPARE p29 FROM 'SET @@global.low_priority_updates = OFF';
|
||||
PREPARE p30 FROM 'SET @@local.low_priority_updates = ON';
|
||||
PREPARE p31 FROM 'INSERT INTO tprep(truth) VALUES (@@global.low_priority_updates)';
|
||||
PREPARE p32 FROM 'INSERT INTO tprep(truth) VALUES (@@local.low_priority_updates)';
|
||||
|
||||
# numeric
|
||||
PREPARE p33 FROM 'SET @@global.default_week_format = 3';
|
||||
PREPARE p34 FROM 'SET @@local.default_week_format = 4';
|
||||
PREPARE p35 FROM 'INSERT INTO tprep(num) VALUES (@@global.default_week_format)';
|
||||
PREPARE p36 FROM 'INSERT INTO tprep(num) VALUES (@@local.default_week_format)';
|
||||
PREPARE p37 FROM 'SET @@global.default_week_format = 5';
|
||||
PREPARE p38 FROM 'SET @@local.default_week_format = 6';
|
||||
PREPARE p39 FROM 'INSERT INTO tprep(num) VALUES (@@global.default_week_format)';
|
||||
PREPARE p40 FROM 'INSERT INTO tprep(num) VALUES (@@local.default_week_format)';
|
||||
|
||||
# text
|
||||
PREPARE p41 FROM 'SET @@global.lc_time_names = \'sv_SE\'';
|
||||
PREPARE p42 FROM 'SET @@local.lc_time_names = \'sv_FI\'';
|
||||
PREPARE p43 FROM 'INSERT INTO tprep(text) VALUES (@@global.lc_time_names)';
|
||||
PREPARE p44 FROM 'INSERT INTO tprep(text) VALUES (@@local.lc_time_names)';
|
||||
PREPARE p45 FROM 'SET @@global.lc_time_names = \'ar_TN\'';
|
||||
PREPARE p46 FROM 'SET @@local.lc_time_names = \'ar_IQ\'';
|
||||
PREPARE p47 FROM 'INSERT INTO tprep(text) VALUES (@@global.lc_time_names)';
|
||||
PREPARE p48 FROM 'INSERT INTO tprep(text) VALUES (@@local.lc_time_names)';
|
||||
|
||||
# enum
|
||||
PREPARE p49 FROM 'SET @@global.sql_mode = \'\'';
|
||||
PREPARE p50 FROM 'SET @@local.sql_mode = \'IGNORE_SPACE,NO_AUTO_CREATE_USER\'';
|
||||
PREPARE p51 FROM 'INSERT INTO tprep(text) VALUES (@@global.sql_mode)';
|
||||
PREPARE p52 FROM 'INSERT INTO tprep(text) VALUES (@@local.sql_mode)';
|
||||
PREPARE p53 FROM 'SET @@global.sql_mode = \'NO_AUTO_VALUE_ON_ZERO,NO_BACKSLASH_ESCAPES,NO_DIR_IN_CREATE,NO_ENGINE_SUBSTITUTION\'';
|
||||
PREPARE p54 FROM 'SET @@local.sql_mode = \'NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS\'';
|
||||
PREPARE p55 FROM 'INSERT INTO tprep(text) VALUES (@@global.sql_mode)';
|
||||
PREPARE p56 FROM 'INSERT INTO tprep(text) VALUES (@@local.sql_mode)';
|
||||
|
||||
# USER
|
||||
|
||||
# numeric
|
||||
PREPARE p57 FROM 'SET @user_num = 20';
|
||||
PREPARE p58 FROM 'INSERT INTO tprep(num) VALUES (@user_num)';
|
||||
PREPARE p59 FROM 'SET @user_num = 30';
|
||||
PREPARE p60 FROM 'INSERT INTO tprep(num) VALUES (@user_num)';
|
||||
|
||||
# string
|
||||
PREPARE p61 FROM 'SET @user_text = \'Bergsbrunna\'';
|
||||
PREPARE p62 FROM 'INSERT INTO tprep(text) VALUES (@user_text)';
|
||||
PREPARE p63 FROM 'SET @user_text = \'Centrum\'';
|
||||
PREPARE p64 FROM 'INSERT INTO tprep(text) VALUES (@user_text)';
|
||||
|
||||
EXECUTE p1; EXECUTE p2; EXECUTE p3; EXECUTE p4; EXECUTE p5; EXECUTE p6;
|
||||
EXECUTE p7; EXECUTE p8; EXECUTE p9; EXECUTE p10; EXECUTE p11; EXECUTE p12;
|
||||
EXECUTE p13; EXECUTE p14; EXECUTE p15; EXECUTE p16; EXECUTE p17; EXECUTE p18;
|
||||
EXECUTE p19; EXECUTE p20; EXECUTE p21; EXECUTE p22; EXECUTE p23; EXECUTE p24;
|
||||
EXECUTE p25; EXECUTE p26; EXECUTE p27; EXECUTE p28; EXECUTE p29; EXECUTE p30;
|
||||
EXECUTE p31; EXECUTE p32; EXECUTE p33; EXECUTE p34; EXECUTE p35; EXECUTE p36;
|
||||
EXECUTE p37; EXECUTE p38; EXECUTE p39; EXECUTE p40; EXECUTE p41; EXECUTE p42;
|
||||
EXECUTE p43; EXECUTE p44; EXECUTE p45; EXECUTE p46; EXECUTE p47; EXECUTE p48;
|
||||
EXECUTE p49; EXECUTE p50; EXECUTE p51; EXECUTE p52; EXECUTE p53; EXECUTE p54;
|
||||
EXECUTE p55; EXECUTE p56; EXECUTE p57; EXECUTE p58; EXECUTE p59; EXECUTE p60;
|
||||
EXECUTE p61; EXECUTE p62; EXECUTE p63; EXECUTE p64;
|
||||
|
||||
|
||||
--echo ==== Results ====
|
||||
|
||||
# Show the result in table test.tstmt on master...
|
||||
SELECT * FROM tstmt ORDER BY id;
|
||||
let $diff_table_1=master:test.tstmt;
|
||||
|
||||
# ... then compare test.tstmt on master to the other tables on master...
|
||||
let $diff_table_2=master:test.tproc;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=master:test.tfunc;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=master:test.ttrig;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=master:test.tprep;
|
||||
source include/diff_tables.inc;
|
||||
|
||||
# ... and to all tables on slave.
|
||||
connection master;
|
||||
sync_slave_with_master;
|
||||
let $diff_table_2=slave:test.tstmt;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=slave:test.tproc;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=slave:test.tfunc;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=slave:test.ttrig;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=slave:test.tprep;
|
||||
source include/diff_tables.inc;
|
||||
|
||||
|
||||
--echo ==== Clean up ====
|
||||
|
||||
--echo [on master]
|
||||
connection master;
|
||||
DROP PROCEDURE proc;
|
||||
DROP FUNCTION func;
|
||||
DROP TRIGGER trig;
|
||||
DROP TABLE tstmt, tproc, tfunc, ttrig, tprep, trigger_table;
|
||||
|
||||
SET @@global.default_week_format= @m_default_week_format;
|
||||
SET @@global.init_slave= @m_init_slave;
|
||||
SET @@global.lc_time_names= @m_lc_time_names;
|
||||
SET @@global.low_priority_updates= @m_low_priority_updates;
|
||||
SET @@global.relay_log_purge= @m_relay_log_purge;
|
||||
SET @@global.slave_exec_mode= @m_slave_exec_mode;
|
||||
SET @@global.sql_mode= @m_sql_mode;
|
||||
SET @@global.sync_binlog= @m_sync_binlog;
|
||||
|
||||
--echo [on slave]
|
||||
connection slave;
|
||||
SET @@global.default_week_format= @s_default_week_format;
|
||||
SET @@global.init_slave= @s_init_slave;
|
||||
SET @@global.lc_time_names= @s_lc_time_names;
|
||||
SET @@global.low_priority_updates= @s_low_priority_updates;
|
||||
SET @@global.relay_log_purge= @s_relay_log_purge;
|
||||
SET @@global.slave_exec_mode= @s_slave_exec_mode;
|
||||
SET @@global.sql_mode= @s_sql_mode;
|
||||
SET @@global.sync_binlog= @s_sync_binlog;
|
||||
|
||||
connection master;
|
||||
sync_slave_with_master;
|
||||
|
636
mysql-test/suite/rpl/t/rpl_variables_stm.test
Normal file
636
mysql-test/suite/rpl/t/rpl_variables_stm.test
Normal file
@ -0,0 +1,636 @@
|
||||
# ==== Purpose ====
|
||||
#
|
||||
# In general, queries referencing @@system_variables are not
|
||||
# considered safe to write to the binlog in statement-based logging
|
||||
# mode. However, a few special cases are supported.
|
||||
#
|
||||
# This test verifies that queries referencing these specially
|
||||
# supported variables are replicated correctly in statement mode.
|
||||
#
|
||||
#
|
||||
# ==== Method ====
|
||||
#
|
||||
# The test simply does a lot of "INSERT INTO t1 VALUES (@@variable)"
|
||||
# and checks the result on the slave.
|
||||
#
|
||||
# Statements referencing a variable only replicate correctly in mixed
|
||||
# and row mode: in row mode, the values inserted are replicated. In
|
||||
# mixed mode, statements referencing a variable are marked as unsafe,
|
||||
# meaning they will be replicated by row. In statement mode, the
|
||||
# slave's value will be used and replication will break. (Except in a
|
||||
# small number of special cases: random seeds, insert_id, and
|
||||
# auto_increment are replicated).
|
||||
#
|
||||
# We test all replicated variables, from each of the following
|
||||
# contexts:
|
||||
# - directly
|
||||
# - from a stored procedure
|
||||
# - from a stored function
|
||||
# - from a trigger
|
||||
# - from a prepared statement
|
||||
#
|
||||
# For all variables where it is possible, we set the variable to one
|
||||
# value on slave, and insert it on the master with two distinct
|
||||
# values.
|
||||
#
|
||||
# The same insertions are made in four different tables using direct
|
||||
# insert, stored procedure, stored function, or trigger. Then all
|
||||
# eight resulting tables on master and slave are compared.
|
||||
#
|
||||
#
|
||||
# ==== Related bugs ====
|
||||
#
|
||||
# BUG#31168: @@hostname does not replicate
|
||||
#
|
||||
#
|
||||
# ==== Related test cases ====
|
||||
#
|
||||
# binlog.binlog_unsafe tests that a warning is issued if system
|
||||
# variables are replicated in statement mode.
|
||||
#
|
||||
# rpl.rpl_variables verifies that variables which cannot be replicated
|
||||
# safely in statement mode are replicated correctly in mixed or row
|
||||
# mode.
|
||||
|
||||
source include/master-slave.inc;
|
||||
source include/have_binlog_format_mixed_or_statement.inc;
|
||||
|
||||
|
||||
--echo ==== Initialization ====
|
||||
|
||||
# Backup the values of global variables so that they can be restored
|
||||
# later.
|
||||
|
||||
--echo [on master]
|
||||
connection master;
|
||||
SET @m_pseudo_thread_id= @@global.pseudo_thread_id;
|
||||
SET @m_auto_increment_increment= @@global.auto_increment_increment;
|
||||
SET @m_auto_increment_offset= @@global.auto_increment_offset;
|
||||
SET @m_character_set_client= @@global.character_set_client;
|
||||
SET @m_collation_connection= @@global.collation_connection;
|
||||
SET @m_collation_server= @@global.collation_server;
|
||||
SET @m_time_zone= @@global.time_zone;
|
||||
SET @m_lc_time_names= @@global.lc_time_names;
|
||||
SET @m_collation_database= @@global.collation_database;
|
||||
|
||||
--echo [on slave]
|
||||
connection slave;
|
||||
SET @s_pseudo_thread_id= @@global.pseudo_thread_id;
|
||||
SET @s_auto_increment_increment= @@global.auto_increment_increment;
|
||||
SET @s_auto_increment_offset= @@global.auto_increment_offset;
|
||||
SET @s_character_set_client= @@global.character_set_client;
|
||||
SET @s_collation_connection= @@global.collation_connection;
|
||||
SET @s_collation_server= @@global.collation_server;
|
||||
SET @s_time_zone= @@global.time_zone;
|
||||
SET @s_lc_time_names= @@global.lc_time_names;
|
||||
SET @s_collation_database= @@global.collation_database;
|
||||
|
||||
SET @@global.pseudo_thread_id= 4711;
|
||||
SET @@global.auto_increment_increment=19;
|
||||
SET @@global.auto_increment_offset=4;
|
||||
SET @@global.character_set_client='latin2';
|
||||
SET @@global.collation_connection='latin2_bin';
|
||||
SET @@global.collation_server='geostd8_general_ci';
|
||||
SET @@global.time_zone='Japan';
|
||||
SET @@global.lc_time_names='sv_SE';
|
||||
SET @@global.collation_database='geostd8_bin';
|
||||
|
||||
--echo [on master]
|
||||
connection master;
|
||||
|
||||
# Tables where everything happens.
|
||||
CREATE TABLE tstmt (id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
num INT,
|
||||
text VARCHAR(100));
|
||||
CREATE TABLE tproc LIKE tstmt;
|
||||
CREATE TABLE tfunc LIKE tstmt;
|
||||
CREATE TABLE ttrig LIKE tstmt;
|
||||
CREATE TABLE tprep LIKE tstmt;
|
||||
|
||||
# Table on which we put a trigger.
|
||||
CREATE TABLE trigger_table (text CHAR(4));
|
||||
|
||||
|
||||
--echo ==== Insert variables directly ====
|
||||
|
||||
SET @@pseudo_thread_id= 4712;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@pseudo_thread_id= 4713;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.pseudo_thread_id);
|
||||
|
||||
SET @@foreign_key_checks= 0;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@foreign_key_checks= 1;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.foreign_key_checks);
|
||||
|
||||
SET @@sql_auto_is_null= 0;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@sql_auto_is_null= 1;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.sql_auto_is_null);
|
||||
|
||||
SET @@unique_checks= 0;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.unique_checks);
|
||||
SET @@unique_checks= 1;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.unique_checks);
|
||||
|
||||
SET @@auto_increment_increment= 11;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_increment= 19;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_increment);
|
||||
|
||||
SET @@auto_increment_offset= 13;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_offset);
|
||||
SET @@auto_increment_offset= 17;
|
||||
INSERT INTO tstmt(num) VALUES (@@session.auto_increment_offset);
|
||||
|
||||
# reset these as they affect the index column
|
||||
SET @@auto_increment_increment= 1;
|
||||
SET @@auto_increment_offset= 1;
|
||||
|
||||
SET @@character_set_client= 'cp1257';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_client);
|
||||
SET @@character_set_client= 'cp1256';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_client);
|
||||
|
||||
SET @@collation_connection= 'cp1251_ukrainian_ci';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_connection= 'cp1251_bulgarian_ci';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_connection);
|
||||
|
||||
SET @@collation_server= 'latin7_bin';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_server);
|
||||
SET @@collation_server= 'latin7_general_cs';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_server);
|
||||
|
||||
SET @@time_zone= 'Europe/Moscow';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.time_zone);
|
||||
SET @@time_zone= 'Universal';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.time_zone);
|
||||
|
||||
SET @@lc_time_names= 'sv_FI';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.lc_time_names);
|
||||
SET @@lc_time_names= 'no_NO';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.lc_time_names);
|
||||
|
||||
SET @@collation_database= 'latin7_general_ci';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_database);
|
||||
SET @@collation_database= 'latin7_estonian_cs';
|
||||
INSERT INTO tstmt(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tstmt(text) VALUES (@@session.character_set_database);
|
||||
|
||||
SET @@timestamp= 47114711;
|
||||
INSERT INTO tstmt(text) VALUES (@@session.timestamp);
|
||||
SET @@timestamp= 47124712;
|
||||
INSERT INTO tstmt(text) VALUES (@@session.timestamp);
|
||||
|
||||
SET @@last_insert_id= 1616;
|
||||
INSERT INTO tstmt(text) VALUES (@@session.last_insert_id);
|
||||
SET @@last_insert_id= 1717;
|
||||
INSERT INTO tstmt(text) VALUES (@@session.last_insert_id);
|
||||
|
||||
|
||||
--echo ==== Insert variables from a stored procedure ====
|
||||
|
||||
DELIMITER |;
|
||||
CREATE PROCEDURE proc()
|
||||
BEGIN
|
||||
|
||||
SET @@pseudo_thread_id= 4712;
|
||||
INSERT INTO tproc(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@pseudo_thread_id= 4713;
|
||||
INSERT INTO tproc(num) VALUES (@@session.pseudo_thread_id);
|
||||
|
||||
SET @@foreign_key_checks= 0;
|
||||
INSERT INTO tproc(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@foreign_key_checks= 1;
|
||||
INSERT INTO tproc(num) VALUES (@@session.foreign_key_checks);
|
||||
|
||||
SET @@sql_auto_is_null= 0;
|
||||
INSERT INTO tproc(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@sql_auto_is_null= 1;
|
||||
INSERT INTO tproc(num) VALUES (@@session.sql_auto_is_null);
|
||||
|
||||
SET @@unique_checks= 0;
|
||||
INSERT INTO tproc(num) VALUES (@@session.unique_checks);
|
||||
SET @@unique_checks= 1;
|
||||
INSERT INTO tproc(num) VALUES (@@session.unique_checks);
|
||||
|
||||
SET @@auto_increment_increment= 11;
|
||||
INSERT INTO tproc(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_increment= 19;
|
||||
INSERT INTO tproc(num) VALUES (@@session.auto_increment_increment);
|
||||
|
||||
SET @@auto_increment_offset= 13;
|
||||
INSERT INTO tproc(num) VALUES (@@session.auto_increment_offset);
|
||||
SET @@auto_increment_offset= 17;
|
||||
INSERT INTO tproc(num) VALUES (@@session.auto_increment_offset);
|
||||
|
||||
# reset these as they affect the index column
|
||||
SET @@auto_increment_increment= 1;
|
||||
SET @@auto_increment_offset= 1;
|
||||
|
||||
SET @@character_set_client= 'cp1257';
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_client);
|
||||
SET @@character_set_client= 'cp1256';
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_client);
|
||||
|
||||
SET @@collation_connection= 'cp1251_ukrainian_ci';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_connection= 'cp1251_bulgarian_ci';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_connection);
|
||||
|
||||
SET @@collation_server= 'latin7_bin';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_server);
|
||||
SET @@collation_server= 'latin7_general_cs';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_server);
|
||||
|
||||
SET @@time_zone= 'Europe/Moscow';
|
||||
INSERT INTO tproc(text) VALUES (@@session.time_zone);
|
||||
SET @@time_zone= 'Universal';
|
||||
INSERT INTO tproc(text) VALUES (@@session.time_zone);
|
||||
|
||||
SET @@lc_time_names= 'sv_FI';
|
||||
INSERT INTO tproc(text) VALUES (@@session.lc_time_names);
|
||||
SET @@lc_time_names= 'no_NO';
|
||||
INSERT INTO tproc(text) VALUES (@@session.lc_time_names);
|
||||
|
||||
SET @@collation_database= 'latin7_general_ci';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_database);
|
||||
SET @@collation_database= 'latin7_estonian_cs';
|
||||
INSERT INTO tproc(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tproc(text) VALUES (@@session.character_set_database);
|
||||
|
||||
SET @@timestamp= 47114711;
|
||||
INSERT INTO tproc(text) VALUES (@@session.timestamp);
|
||||
SET @@timestamp= 47124712;
|
||||
INSERT INTO tproc(text) VALUES (@@session.timestamp);
|
||||
|
||||
SET @@last_insert_id= 1616;
|
||||
INSERT INTO tproc(text) VALUES (@@session.last_insert_id);
|
||||
SET @@last_insert_id= 1717;
|
||||
INSERT INTO tproc(text) VALUES (@@session.last_insert_id);
|
||||
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
CALL proc();
|
||||
|
||||
|
||||
--echo ==== Insert variables from a stored function ====
|
||||
|
||||
DELIMITER |;
|
||||
CREATE FUNCTION func()
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
|
||||
SET @@pseudo_thread_id= 4712;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@pseudo_thread_id= 4713;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.pseudo_thread_id);
|
||||
|
||||
SET @@foreign_key_checks= 0;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@foreign_key_checks= 1;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.foreign_key_checks);
|
||||
|
||||
SET @@sql_auto_is_null= 0;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@sql_auto_is_null= 1;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.sql_auto_is_null);
|
||||
|
||||
SET @@unique_checks= 0;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.unique_checks);
|
||||
SET @@unique_checks= 1;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.unique_checks);
|
||||
|
||||
SET @@auto_increment_increment= 11;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_increment= 19;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_increment);
|
||||
|
||||
SET @@auto_increment_offset= 13;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_offset);
|
||||
SET @@auto_increment_offset= 17;
|
||||
INSERT INTO tfunc(num) VALUES (@@session.auto_increment_offset);
|
||||
|
||||
# reset these as they affect the index column
|
||||
SET @@auto_increment_increment= 1;
|
||||
SET @@auto_increment_offset= 1;
|
||||
|
||||
SET @@character_set_client= 'cp1257';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_client);
|
||||
SET @@character_set_client= 'cp1256';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_client);
|
||||
|
||||
SET @@collation_connection= 'cp1251_ukrainian_ci';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_connection= 'cp1251_bulgarian_ci';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_connection);
|
||||
|
||||
SET @@collation_server= 'latin7_bin';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_server);
|
||||
SET @@collation_server= 'latin7_general_cs';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_server);
|
||||
|
||||
SET @@time_zone= 'Europe/Moscow';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.time_zone);
|
||||
SET @@time_zone= 'Universal';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.time_zone);
|
||||
|
||||
SET @@lc_time_names= 'sv_FI';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.lc_time_names);
|
||||
SET @@lc_time_names= 'no_NO';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.lc_time_names);
|
||||
|
||||
SET @@collation_database= 'latin7_general_ci';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_database);
|
||||
SET @@collation_database= 'latin7_estonian_cs';
|
||||
INSERT INTO tfunc(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO tfunc(text) VALUES (@@session.character_set_database);
|
||||
|
||||
SET @@timestamp= 47114711;
|
||||
INSERT INTO tfunc(text) VALUES (@@session.timestamp);
|
||||
SET @@timestamp= 47124712;
|
||||
INSERT INTO tfunc(text) VALUES (@@session.timestamp);
|
||||
|
||||
SET @@last_insert_id= 1616;
|
||||
INSERT INTO tfunc(text) VALUES (@@session.last_insert_id);
|
||||
SET @@last_insert_id= 1717;
|
||||
INSERT INTO tfunc(text) VALUES (@@session.last_insert_id);
|
||||
|
||||
RETURN 0;
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
SELECT func();
|
||||
|
||||
|
||||
--echo ==== Insert variables from a trigger ====
|
||||
|
||||
DELIMITER |;
|
||||
CREATE TRIGGER trig
|
||||
BEFORE INSERT ON trigger_table
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
|
||||
SET @@pseudo_thread_id= 4712;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.pseudo_thread_id);
|
||||
SET @@pseudo_thread_id= 4713;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.pseudo_thread_id);
|
||||
|
||||
SET @@foreign_key_checks= 0;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.foreign_key_checks);
|
||||
SET @@foreign_key_checks= 1;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.foreign_key_checks);
|
||||
|
||||
SET @@sql_auto_is_null= 0;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.sql_auto_is_null);
|
||||
SET @@sql_auto_is_null= 1;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.sql_auto_is_null);
|
||||
|
||||
SET @@unique_checks= 0;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.unique_checks);
|
||||
SET @@unique_checks= 1;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.unique_checks);
|
||||
|
||||
SET @@auto_increment_increment= 11;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_increment);
|
||||
SET @@auto_increment_increment= 19;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_increment);
|
||||
|
||||
SET @@auto_increment_offset= 13;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_offset);
|
||||
SET @@auto_increment_offset= 17;
|
||||
INSERT INTO ttrig(num) VALUES (@@session.auto_increment_offset);
|
||||
|
||||
# reset these as they affect the index column
|
||||
SET @@auto_increment_increment= 1;
|
||||
SET @@auto_increment_offset= 1;
|
||||
|
||||
SET @@character_set_client= 'cp1257';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_client);
|
||||
SET @@character_set_client= 'cp1256';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_client);
|
||||
|
||||
SET @@collation_connection= 'cp1251_ukrainian_ci';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_connection);
|
||||
SET @@collation_connection= 'cp1251_bulgarian_ci';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_connection);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_connection);
|
||||
|
||||
SET @@collation_server= 'latin7_bin';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_server);
|
||||
SET @@collation_server= 'latin7_general_cs';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_server);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_server);
|
||||
|
||||
SET @@time_zone= 'Europe/Moscow';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.time_zone);
|
||||
SET @@time_zone= 'Universal';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.time_zone);
|
||||
|
||||
SET @@lc_time_names= 'sv_FI';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.lc_time_names);
|
||||
SET @@lc_time_names= 'no_NO';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.lc_time_names);
|
||||
|
||||
SET @@collation_database= 'latin7_general_ci';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_database);
|
||||
SET @@collation_database= 'latin7_estonian_cs';
|
||||
INSERT INTO ttrig(text) VALUES (@@session.collation_database);
|
||||
INSERT INTO ttrig(text) VALUES (@@session.character_set_database);
|
||||
|
||||
SET @@timestamp= 47114711;
|
||||
INSERT INTO ttrig(text) VALUES (@@session.timestamp);
|
||||
SET @@timestamp= 47124712;
|
||||
INSERT INTO ttrig(text) VALUES (@@session.timestamp);
|
||||
|
||||
SET @@last_insert_id= 1616;
|
||||
INSERT INTO ttrig(text) VALUES (@@session.last_insert_id);
|
||||
SET @@last_insert_id= 1717;
|
||||
INSERT INTO ttrig(text) VALUES (@@session.last_insert_id);
|
||||
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
INSERT INTO trigger_table VALUES ('bye.');
|
||||
|
||||
|
||||
--echo ==== Insert variables from a prepared statement ====
|
||||
|
||||
# GLOBAL
|
||||
|
||||
PREPARE p1 FROM 'SET @@pseudo_thread_id= 4712';
|
||||
PREPARE p2 FROM 'INSERT INTO tprep(num) VALUES (@@session.pseudo_thread_id)';
|
||||
PREPARE p3 FROM 'SET @@pseudo_thread_id= 4713';
|
||||
PREPARE p4 FROM 'INSERT INTO tprep(num) VALUES (@@session.pseudo_thread_id)';
|
||||
|
||||
PREPARE p5 FROM 'SET @@foreign_key_checks= 0';
|
||||
PREPARE p6 FROM 'INSERT INTO tprep(num) VALUES (@@session.foreign_key_checks)';
|
||||
PREPARE p7 FROM 'SET @@foreign_key_checks= 1';
|
||||
PREPARE p8 FROM 'INSERT INTO tprep(num) VALUES (@@session.foreign_key_checks)';
|
||||
|
||||
PREPARE p9 FROM 'SET @@sql_auto_is_null= 0';
|
||||
PREPARE p10 FROM 'INSERT INTO tprep(num) VALUES (@@session.sql_auto_is_null)';
|
||||
PREPARE p11 FROM 'SET @@sql_auto_is_null= 1';
|
||||
PREPARE p12 FROM 'INSERT INTO tprep(num) VALUES (@@session.sql_auto_is_null)';
|
||||
|
||||
PREPARE p13 FROM 'SET @@unique_checks= 0';
|
||||
PREPARE p14 FROM 'INSERT INTO tprep(num) VALUES (@@session.unique_checks)';
|
||||
PREPARE p15 FROM 'SET @@unique_checks= 1';
|
||||
PREPARE p16 FROM 'INSERT INTO tprep(num) VALUES (@@session.unique_checks)';
|
||||
|
||||
PREPARE p17 FROM 'SET @@auto_increment_increment= 11';
|
||||
PREPARE p18 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_increment)';
|
||||
PREPARE p19 FROM 'SET @@auto_increment_increment= 19';
|
||||
PREPARE p20 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_increment)';
|
||||
|
||||
PREPARE p21 FROM 'SET @@auto_increment_offset= 13';
|
||||
PREPARE p22 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_offset)';
|
||||
PREPARE p23 FROM 'SET @@auto_increment_offset= 17';
|
||||
PREPARE p24 FROM 'INSERT INTO tprep(num) VALUES (@@session.auto_increment_offset)';
|
||||
|
||||
# reset these as they affect the index column
|
||||
PREPARE p25 FROM 'SET @@auto_increment_increment= 1';
|
||||
PREPARE p26 FROM 'SET @@auto_increment_offset= 1';
|
||||
|
||||
PREPARE p27 FROM 'SET @@character_set_client= \'cp1257\'';
|
||||
PREPARE p28 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_client)';
|
||||
PREPARE p29 FROM 'SET @@character_set_client= \'cp1256\'';
|
||||
PREPARE p30 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_client)';
|
||||
|
||||
PREPARE p31 FROM 'SET @@collation_connection= \'cp1251_ukrainian_ci\'';
|
||||
PREPARE p32 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_connection)';
|
||||
PREPARE p33 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_connection)';
|
||||
PREPARE p34 FROM 'SET @@collation_connection= \'cp1251_bulgarian_ci\'';
|
||||
PREPARE p35 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_connection)';
|
||||
PREPARE p36 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_connection)';
|
||||
|
||||
PREPARE p37 FROM 'SET @@collation_server= \'latin7_bin\'';
|
||||
PREPARE p38 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_server)';
|
||||
PREPARE p39 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_server)';
|
||||
PREPARE p40 FROM 'SET @@collation_server= \'latin7_general_cs\'';
|
||||
PREPARE p41 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_server)';
|
||||
PREPARE p42 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_server)';
|
||||
|
||||
PREPARE p43 FROM 'SET @@time_zone= \'Europe/Moscow\'';
|
||||
PREPARE p44 FROM 'INSERT INTO tprep(text) VALUES (@@session.time_zone)';
|
||||
PREPARE p45 FROM 'SET @@time_zone= \'Universal\'';
|
||||
PREPARE p46 FROM 'INSERT INTO tprep(text) VALUES (@@session.time_zone)';
|
||||
|
||||
PREPARE p47 FROM 'SET @@lc_time_names= \'sv_FI\'';
|
||||
PREPARE p48 FROM 'INSERT INTO tprep(text) VALUES (@@session.lc_time_names)';
|
||||
PREPARE p49 FROM 'SET @@lc_time_names= \'no_NO\'';
|
||||
PREPARE p50 FROM 'INSERT INTO tprep(text) VALUES (@@session.lc_time_names)';
|
||||
|
||||
PREPARE p51 FROM 'SET @@collation_database= \'latin7_general_ci\'';
|
||||
PREPARE p52 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_database)';
|
||||
PREPARE p53 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_database)';
|
||||
PREPARE p54 FROM 'SET @@collation_database= \'latin7_estonian_cs\'';
|
||||
PREPARE p55 FROM 'INSERT INTO tprep(text) VALUES (@@session.collation_database)';
|
||||
PREPARE p56 FROM 'INSERT INTO tprep(text) VALUES (@@session.character_set_database)';
|
||||
|
||||
PREPARE p57 FROM 'SET @@timestamp= 47114711';
|
||||
PREPARE p58 FROM 'INSERT INTO tprep(text) VALUES (@@session.timestamp)';
|
||||
PREPARE p59 FROM 'SET @@timestamp= 47124712';
|
||||
PREPARE p60 FROM 'INSERT INTO tprep(text) VALUES (@@session.timestamp)';
|
||||
|
||||
PREPARE p61 FROM 'SET @@last_insert_id= 1616';
|
||||
PREPARE p62 FROM 'INSERT INTO tprep(text) VALUES (@@session.last_insert_id)';
|
||||
PREPARE p63 FROM 'SET @@last_insert_id= 1717';
|
||||
PREPARE p64 FROM 'INSERT INTO tprep(text) VALUES (@@session.last_insert_id)';
|
||||
|
||||
EXECUTE p1; EXECUTE p2; EXECUTE p3; EXECUTE p4; EXECUTE p5; EXECUTE p6;
|
||||
EXECUTE p7; EXECUTE p8; EXECUTE p9; EXECUTE p10; EXECUTE p11; EXECUTE p12;
|
||||
EXECUTE p13; EXECUTE p14; EXECUTE p15; EXECUTE p16; EXECUTE p17; EXECUTE p18;
|
||||
EXECUTE p19; EXECUTE p20; EXECUTE p21; EXECUTE p22; EXECUTE p23; EXECUTE p24;
|
||||
EXECUTE p25; EXECUTE p26; EXECUTE p27; EXECUTE p28; EXECUTE p29; EXECUTE p30;
|
||||
EXECUTE p31; EXECUTE p32; EXECUTE p33; EXECUTE p34; EXECUTE p35; EXECUTE p36;
|
||||
EXECUTE p37; EXECUTE p38; EXECUTE p39; EXECUTE p40; EXECUTE p41; EXECUTE p42;
|
||||
EXECUTE p43; EXECUTE p44; EXECUTE p45; EXECUTE p46; EXECUTE p47; EXECUTE p48;
|
||||
EXECUTE p49; EXECUTE p50; EXECUTE p51; EXECUTE p52; EXECUTE p53; EXECUTE p54;
|
||||
EXECUTE p55; EXECUTE p56; EXECUTE p57; EXECUTE p58; EXECUTE p59; EXECUTE p60;
|
||||
EXECUTE p61; EXECUTE p62; EXECUTE p63; EXECUTE p64;
|
||||
|
||||
|
||||
--echo ==== Results ====
|
||||
|
||||
# Show the result in table test.tstmt on master...
|
||||
SELECT * FROM tstmt ORDER BY id;
|
||||
let $diff_table_1=master:test.tstmt;
|
||||
|
||||
# ... then compare test.tstmt on master to the other tables on master...
|
||||
let $diff_table_2=master:test.tproc;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=master:test.tfunc;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=master:test.ttrig;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=master:test.tprep;
|
||||
source include/diff_tables.inc;
|
||||
|
||||
# ... and to all tables on slave.
|
||||
sync_slave_with_master;
|
||||
let $diff_table_2=slave:test.tstmt;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=slave:test.tproc;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=slave:test.tfunc;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=slave:test.ttrig;
|
||||
source include/diff_tables.inc;
|
||||
let $diff_table_2=slave:test.tprep;
|
||||
source include/diff_tables.inc;
|
||||
|
||||
|
||||
--echo ==== Clean up ====
|
||||
|
||||
--echo [on master]
|
||||
connection master;
|
||||
DROP PROCEDURE proc;
|
||||
DROP FUNCTION func;
|
||||
DROP TRIGGER trig;
|
||||
DROP TABLE tstmt, tproc, tfunc, ttrig, tprep, trigger_table;
|
||||
|
||||
SET @@global.pseudo_thread_id= @m_pseudo_thread_id;
|
||||
SET @@global.auto_increment_increment= @m_auto_increment_increment;
|
||||
SET @@global.auto_increment_offset= @m_auto_increment_offset;
|
||||
SET @@global.character_set_client= @m_character_set_client;
|
||||
SET @@global.collation_connection= @m_collation_connection;
|
||||
SET @@global.collation_server= @m_collation_server;
|
||||
SET @@global.time_zone= @m_time_zone;
|
||||
SET @@global.lc_time_names= @m_lc_time_names;
|
||||
SET @@global.collation_database= @m_collation_database;
|
||||
|
||||
--echo [on slave]
|
||||
connection slave;
|
||||
SET @@global.pseudo_thread_id= @s_pseudo_thread_id;
|
||||
SET @@global.auto_increment_increment= @s_auto_increment_increment;
|
||||
SET @@global.auto_increment_offset= @s_auto_increment_offset;
|
||||
SET @@global.character_set_client= @s_character_set_client;
|
||||
SET @@global.collation_connection= @s_collation_connection;
|
||||
SET @@global.collation_server= @s_collation_server;
|
||||
SET @@global.time_zone= @s_time_zone;
|
||||
SET @@global.lc_time_names= @s_lc_time_names;
|
||||
SET @@global.collation_database= @s_collation_database;
|
||||
|
||||
connection master;
|
||||
sync_slave_with_master;
|
@ -399,6 +399,62 @@ set @b1 = concat(@b1,@b1);
|
||||
INSERT INTO t8 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
|
||||
*** Drop t8 ***
|
||||
DROP TABLE t8;
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
CREATE TABLE t9 (a INT KEY, b BLOB, c CHAR(5),
|
||||
d TIMESTAMP,
|
||||
e INT NOT NULL) ENGINE='NDB';
|
||||
*** Create t9 on Master ***
|
||||
CREATE TABLE t9 (a INT PRIMARY KEY, b BLOB, c CHAR(5)
|
||||
) ENGINE='NDB';
|
||||
RESET MASTER;
|
||||
*** Start Slave ***
|
||||
START SLAVE;
|
||||
*** Master Data Insert ***
|
||||
set @b1 = 'b1b1b1b1';
|
||||
set @b1 = concat(@b1,@b1);
|
||||
INSERT INTO t9 () VALUES(1,@b1,'Kyle'),(2,@b1,'JOE'),(3,@b1,'QA');
|
||||
SHOW SLAVE STATUS;
|
||||
Slave_IO_State #
|
||||
Master_Host 127.0.0.1
|
||||
Master_User root
|
||||
Master_Port #
|
||||
Connect_Retry 1
|
||||
Master_Log_File master-bin.000001
|
||||
Read_Master_Log_Pos #
|
||||
Relay_Log_File #
|
||||
Relay_Log_Pos #
|
||||
Relay_Master_Log_File master-bin.000001
|
||||
Slave_IO_Running Yes
|
||||
Slave_SQL_Running No
|
||||
Replicate_Do_DB
|
||||
Replicate_Ignore_DB
|
||||
Replicate_Do_Table
|
||||
Replicate_Ignore_Table #
|
||||
Replicate_Wild_Do_Table
|
||||
Replicate_Wild_Ignore_Table
|
||||
Last_Errno 1364
|
||||
Last_Error Could not execute Write_rows event on table test.t9; Field 'e' doesn't have a default value, Error_code: 1364; handler error HA_ERR_ROWS_EVENT_APPLY; the event's master log master-bin.000001, end_log_pos 447
|
||||
Skip_Counter 0
|
||||
Exec_Master_Log_Pos #
|
||||
Relay_Log_Space #
|
||||
Until_Condition None
|
||||
Until_Log_File
|
||||
Until_Log_Pos 0
|
||||
Master_SSL_Allowed No
|
||||
Master_SSL_CA_File
|
||||
Master_SSL_CA_Path
|
||||
Master_SSL_Cert
|
||||
Master_SSL_Cipher
|
||||
Master_SSL_Key
|
||||
Seconds_Behind_Master #
|
||||
Master_SSL_Verify_Server_Cert No
|
||||
Last_IO_Errno #
|
||||
Last_IO_Error #
|
||||
Last_SQL_Errno 1364
|
||||
Last_SQL_Error Could not execute Write_rows event on table test.t9; Field 'e' doesn't have a default value, Error_code: 1364; handler error HA_ERR_ROWS_EVENT_APPLY; the event's master log master-bin.000001, end_log_pos 447
|
||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||
START SLAVE;
|
||||
*** Create t10 on slave ***
|
||||
STOP SLAVE;
|
||||
RESET SLAVE;
|
||||
|
@ -184,14 +184,11 @@ set GLOBAL slave_transaction_retries=1;
|
||||
--echo **** On Master ****
|
||||
UPDATE t1 SET `nom`="DEAD" WHERE `nid`=1;
|
||||
|
||||
# wait for deadlock to be detected
|
||||
# sleep longer than dead lock detection timeout in config
|
||||
# we do this 2 times, once with few retries to verify that we
|
||||
# get a failure with the set sleep, and once with the _same_
|
||||
# sleep, but with more retries to get it to succeed
|
||||
--sleep 5
|
||||
# Wait for deadlock to be detected.
|
||||
# When detected, the slave will stop, so we just wait for it to stop.
|
||||
source include/wait_for_slave_sql_to_stop.inc;
|
||||
|
||||
# replication should have stopped, since max retries where not enough
|
||||
# Replication should have stopped, since max retries were not enough.
|
||||
# verify with show slave status
|
||||
--connection slave
|
||||
--echo **** On Slave ****
|
||||
@ -202,9 +199,14 @@ UPDATE t1 SET `nom`="DEAD" WHERE `nid`=1;
|
||||
# now set max retries high enough to succeed, and start slave again
|
||||
set GLOBAL slave_transaction_retries=10;
|
||||
START SLAVE;
|
||||
# wait for deadlock to be detected and retried
|
||||
# should be the same sleep as above for test to be valid
|
||||
--sleep 5
|
||||
source include/wait_for_slave_to_start.inc;
|
||||
# Wait for deadlock to be detected and retried.
|
||||
# We want to wait until at least one retry has been made, but before
|
||||
# the slave stops. currently, there is no safe way to do that: we
|
||||
# would need to access the retry counter, but that is not exposed.
|
||||
# Failing that, we just wait sufficiently long that one but not all
|
||||
# retries have been made. See BUG#35183.
|
||||
sleep 5;
|
||||
|
||||
# commit transaction to release lock on row and let replication succeed
|
||||
select * from t1 order by nid;
|
||||
|
@ -16,10 +16,12 @@ SET collation_connection='big5_chinese_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
SET collation_connection='big5_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
|
||||
#
|
||||
# Bugs#9357: TEXT columns break string with special word in BIG5 charset.
|
||||
|
@ -361,9 +361,10 @@ DROP TABLE t1;
|
||||
|
||||
SET collation_connection='eucjpms_japanese_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
SET collation_connection='eucjpms_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
|
||||
#
|
||||
# Bugs#15375: Unassigned multibyte codes are broken
|
||||
|
@ -16,10 +16,12 @@ SET collation_connection='euckr_korean_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
SET collation_connection='euckr_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
|
||||
#
|
||||
# Bug#15377 Valid multibyte sequences are truncated on INSERT
|
||||
|
@ -16,10 +16,12 @@ SET collation_connection='gb2312_chinese_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
SET collation_connection='gb2312_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
|
||||
#
|
||||
# Bug#15377 Valid multibyte sequences are truncated on INSERT
|
||||
|
@ -16,10 +16,12 @@ SET collation_connection='gbk_chinese_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
SET collation_connection='gbk_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
|
||||
#
|
||||
# Bug#11987 mysql will truncate the text when
|
||||
|
@ -116,6 +116,7 @@ SELECT FIELD('ue',s1), FIELD('
|
||||
DROP TABLE t1;
|
||||
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_german.inc
|
||||
|
||||
#
|
||||
# Bug#7878 with utf8_general_ci, equals (=) has problem with
|
||||
|
@ -68,10 +68,12 @@ SET collation_connection='sjis_japanese_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
SET collation_connection='sjis_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
|
||||
# Check parsing of string literals in SJIS with multibyte characters that
|
||||
# have an embedded \ in them. (Bug #8303)
|
||||
|
@ -458,6 +458,7 @@ drop table t1;
|
||||
SET collation_connection='utf8_unicode_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_german.inc
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
@ -539,7 +540,8 @@ select * from t1 where a like 'c%';
|
||||
drop table t1;
|
||||
|
||||
set collation_connection=ucs2_unicode_ci;
|
||||
--source include/ctype_regex.inc
|
||||
-- source include/ctype_regex.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
set names utf8;
|
||||
|
||||
-- echo End for 5.0 tests
|
||||
|
@ -373,10 +373,13 @@ drop table t1;
|
||||
SET collation_connection='ucs2_general_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_german.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
SET NAMES latin1;
|
||||
SET collation_connection='ucs2_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
|
||||
#
|
||||
# Bug#10344 Some string functions fail for UCS2
|
||||
|
@ -1147,10 +1147,12 @@ SET collation_connection='ujis_japanese_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
SET collation_connection='ujis_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_like_range_f1f2.inc
|
||||
|
||||
#
|
||||
# Bugs#15375: Unassigned multibyte codes are broken
|
||||
|
@ -721,6 +721,7 @@ select hex(soundex(_utf8 0xD091D092D093));
|
||||
SET collation_connection='utf8_general_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
-- source include/ctype_german.inc
|
||||
SET collation_connection='utf8_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
|
@ -12,8 +12,6 @@
|
||||
user_limits : Bug#23921 random failure of user_limits.test
|
||||
|
||||
concurrent_innodb : BUG#21579 2006-08-11 mleich innodb_concurrent random failures with varying differences
|
||||
ctype_big5 : BUG#26711 2007-06-21 Lars Test has never worked on Double Whopper
|
||||
|
||||
federated_transactions : Bug#29523 Transactions do not work
|
||||
lowercase_table3 : Bug#32667 lowercase_table3.test reports to error log
|
||||
innodb_mysql : Bug#32724: innodb_mysql.test fails randomly
|
||||
|
@ -41,8 +41,7 @@ select "--- Local --" as "";
|
||||
# be time dependent (the Start events). Better than nothing.
|
||||
#
|
||||
|
||||
--replace_regex /[[:<:]][0-9]{6} [0-9 ][0-9]:[0-9]{2}:[0-9]{2}[[:>:]]/{yymmdd} {HH:MM:SS}/ /=[0-9]+ /={integer} / /# at [0-9]+/# at {pos}/ /(pos:?) [0-9]+/\1 {pos}/ /binlog v [0-9]+, server v [^ ]* created/binlog v #, server v ## created/
|
||||
--exec $MYSQL_BINLOG --base64-output=never $MYSQLTEST_VARDIR/log/master-bin.000001
|
||||
--exec $MYSQL_BINLOG --short-form --base64-output=never $MYSQLTEST_VARDIR/log/master-bin.000001
|
||||
|
||||
--disable_query_log
|
||||
select "--- offset --" as "";
|
||||
|
@ -1613,6 +1613,10 @@ DROP TABLE t1;
|
||||
#
|
||||
# Added for use-thread option
|
||||
#
|
||||
|
||||
# THIS PART OF THE TEST IS DISABLED UNTIL BUG#32991 IS FIXED
|
||||
if ($bug32991_fixed) {
|
||||
|
||||
create table t1 (a text , b text);
|
||||
create table t2 (a text , b text);
|
||||
insert t1 values ("Duck, Duck", "goose");
|
||||
@ -1650,6 +1654,8 @@ drop table t2;
|
||||
|
||||
drop table words2;
|
||||
|
||||
}
|
||||
|
||||
--echo #
|
||||
--echo # BUG# 16853: mysqldump doesn't show events
|
||||
--echo #
|
||||
|
1
mysql-test/t/variables-notembedded-master.opt
Normal file
1
mysql-test/t/variables-notembedded-master.opt
Normal file
@ -0,0 +1 @@
|
||||
--loose-slave-skip-errors=3,100,137,643,1752
|
30
mysql-test/t/variables-notembedded.test
Normal file
30
mysql-test/t/variables-notembedded.test
Normal file
@ -0,0 +1,30 @@
|
||||
# Tests that variables work correctly (setting and showing). This
|
||||
# test is like the main.variables test, but for variables not
|
||||
# available in embedded mode.
|
||||
|
||||
source include/not_embedded.inc;
|
||||
|
||||
--echo ---- Init ----
|
||||
# Backup global variables so they can be restored at end of test.
|
||||
set @my_slave_net_timeout =@@global.slave_net_timeout;
|
||||
|
||||
--echo ---- Test ----
|
||||
set global slave_net_timeout=100;
|
||||
set global sql_slave_skip_counter=100;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
# BUG #7800: Add various-slave related variables to SHOW VARIABLES
|
||||
show variables like 'slave_compressed_protocol';
|
||||
--replace_column 2 SLAVE_LOAD_TMPDIR
|
||||
show variables like 'slave_load_tmpdir';
|
||||
# We just set some arbitrary values in variables-master.opt so we can test
|
||||
# that a list of values works correctly
|
||||
show variables like 'slave_skip_errors';
|
||||
|
||||
--echo ---- Clean Up ----
|
||||
|
||||
set global slave_net_timeout=default;
|
||||
# sql_slave_skip_counter is write-only, so we can't save previous
|
||||
# value and restore it here. That's ok, because it's normally 0.
|
||||
set global sql_slave_skip_counter= 0;
|
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