mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 19:11:46 +01:00
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
This commit is contained in:
commit
56ef2e28e4
13 changed files with 957 additions and 4 deletions
|
@ -194,7 +194,7 @@ static int com_quit(String *str,char*),
|
|||
com_connect(String *str,char*), com_status(String *str,char*),
|
||||
com_use(String *str,char*), com_source(String *str, char*),
|
||||
com_rehash(String *str, char*), com_tee(String *str, char*),
|
||||
com_notee(String *str, char*),
|
||||
com_notee(String *str, char*), com_charset(String *str,char*),
|
||||
com_prompt(String *str, char*), com_delimiter(String *str, char*),
|
||||
com_warnings(String *str, char*), com_nowarnings(String *str, char*);
|
||||
|
||||
|
@ -268,6 +268,8 @@ static COMMANDS commands[] = {
|
|||
"Set outfile [to_outfile]. Append everything into given outfile." },
|
||||
{ "use", 'u', com_use, 1,
|
||||
"Use another database. Takes database name as argument." },
|
||||
{ "charset", 'C', com_charset, 1,
|
||||
"Switch to another charset. Might be needed for processing binlog with multi-byte charsets." },
|
||||
{ "warnings", 'W', com_warnings, 0,
|
||||
"Show warnings after every statement." },
|
||||
{ "nowarning", 'w', com_nowarnings, 0,
|
||||
|
@ -1909,6 +1911,28 @@ com_clear(String *buffer,char *line __attribute__((unused)))
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
com_charset(String *buffer __attribute__((unused)), char *line)
|
||||
{
|
||||
char buff[256], *param;
|
||||
CHARSET_INFO * new_cs;
|
||||
strmake(buff, line, sizeof(buff) - 1);
|
||||
param= get_arg(buff, 0);
|
||||
if (!param || !*param)
|
||||
{
|
||||
return put_info("Usage: \\C char_setname | charset charset_name",
|
||||
INFO_ERROR, 0);
|
||||
}
|
||||
new_cs= get_charset_by_csname(param, MY_CS_PRIMARY, MYF(MY_WME));
|
||||
if (new_cs)
|
||||
{
|
||||
charset_info= new_cs;
|
||||
put_info("Charset changed", INFO_INFO);
|
||||
}
|
||||
else put_info("Charset is not found", INFO_INFO);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
Execute command
|
||||
|
|
|
@ -15,6 +15,7 @@ use test;
|
|||
SET TIMESTAMP=10000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t2 values (@v);
|
||||
# End of log file
|
||||
|
|
|
@ -59,3 +59,13 @@ database()
|
|||
test
|
||||
unlock tables;
|
||||
drop table t1;
|
||||
ソ
|
||||
ソ
|
||||
c_cp932
|
||||
ソ
|
||||
ソ
|
||||
ソ
|
||||
ソ
|
||||
ソ
|
||||
ソ
|
||||
ソ
|
||||
|
|
|
@ -20,6 +20,7 @@ use test;
|
|||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
drop table if exists t1,t2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
|
@ -50,6 +51,7 @@ use test;
|
|||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
# End of log file
|
||||
|
@ -72,6 +74,7 @@ use test;
|
|||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
# End of log file
|
||||
|
@ -86,6 +89,7 @@ use test;
|
|||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
drop table if exists t1,t2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
|
@ -116,6 +120,7 @@ use test;
|
|||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
# End of log file
|
||||
|
@ -138,6 +143,7 @@ use test;
|
|||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
# End of log file
|
||||
|
@ -166,4 +172,21 @@ insert t1 values (1);
|
|||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
drop table t1, t2;
|
||||
flush logs;
|
||||
create table t3 (f text character set utf8);
|
||||
create table t4 (f text character set cp932);
|
||||
flush logs;
|
||||
rename table t3 to t03, t4 to t04;
|
||||
select HEX(f) from t03;
|
||||
HEX(f)
|
||||
E382BD
|
||||
select HEX(f) from t3;
|
||||
HEX(f)
|
||||
E382BD
|
||||
select HEX(f) from t04;
|
||||
HEX(f)
|
||||
835C
|
||||
select HEX(f) from t4;
|
||||
HEX(f)
|
||||
835C
|
||||
drop table t1, t2, t03, t04, t3, t4;
|
||||
|
|
|
@ -22,6 +22,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -52,6 +53,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
|
@ -78,6 +80,7 @@ use test;
|
|||
SET TIMESTAMP=1579609946;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
|
@ -95,6 +98,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -119,6 +123,7 @@ use test;
|
|||
SET TIMESTAMP=1579609944;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
|
@ -139,6 +144,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -159,6 +165,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -181,6 +188,7 @@ use test;
|
|||
SET TIMESTAMP=1579609943;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
# End of log file
|
||||
|
@ -196,6 +204,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
|
@ -215,6 +224,7 @@ use test;
|
|||
SET TIMESTAMP=1579609943;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
# End of log file
|
||||
|
@ -229,6 +239,7 @@ use test;
|
|||
SET TIMESTAMP=1579609946;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
|
@ -239,6 +250,7 @@ use test;
|
|||
SET TIMESTAMP=1579609943;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
# End of log file
|
||||
|
@ -253,6 +265,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -284,6 +297,7 @@ use test;
|
|||
SET TIMESTAMP=1579609944;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
|
@ -297,6 +311,7 @@ use test;
|
|||
SET TIMESTAMP=1579609943;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
# End of log file
|
||||
|
@ -311,6 +326,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -331,6 +347,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -361,6 +378,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
|
@ -387,6 +405,7 @@ use test;
|
|||
SET TIMESTAMP=1579609946;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
|
@ -404,6 +423,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -428,6 +448,7 @@ use test;
|
|||
SET TIMESTAMP=1579609944;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
|
@ -448,6 +469,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -468,6 +490,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -490,6 +513,7 @@ use test;
|
|||
SET TIMESTAMP=1579609943;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
# End of log file
|
||||
|
@ -505,6 +529,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
|
@ -524,6 +549,7 @@ use test;
|
|||
SET TIMESTAMP=1579609943;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
# End of log file
|
||||
|
@ -538,6 +564,7 @@ use test;
|
|||
SET TIMESTAMP=1579609946;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
|
@ -548,6 +575,7 @@ use test;
|
|||
SET TIMESTAMP=1579609943;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
# End of log file
|
||||
|
@ -562,6 +590,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -593,6 +622,7 @@ use test;
|
|||
SET TIMESTAMP=1579609944;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "c");
|
||||
SET INSERT_ID=4;
|
||||
|
@ -606,6 +636,7 @@ use test;
|
|||
SET TIMESTAMP=1579609943;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
# End of log file
|
||||
|
@ -620,6 +651,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
@ -640,6 +672,7 @@ use test;
|
|||
SET TIMESTAMP=1579609942;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (a int auto_increment not null primary key, b char(3));
|
||||
SET INSERT_ID=1;
|
||||
|
|
|
@ -180,6 +180,7 @@ ROLLBACK;
|
|||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
drop database if exists mysqltest2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
|
@ -187,9 +188,11 @@ drop database if exists mysqltest3;
|
|||
SET TIMESTAMP=1000000000;
|
||||
create database mysqltest2 character set latin2;
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=30;
|
||||
create database mysqltest3;
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=64;
|
||||
drop database mysqltest3;
|
||||
SET TIMESTAMP=1000000000;
|
||||
|
@ -199,6 +202,7 @@ SET TIMESTAMP=1000000000;
|
|||
create table t1 (a int auto_increment primary key, b varchar(100));
|
||||
SET INSERT_ID=1;
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C cp850 */;
|
||||
SET @@session.character_set_client=4,@@session.collation_connection=27,@@session.collation_server=64;
|
||||
insert into t1 (b) values(@@character_set_server);
|
||||
SET INSERT_ID=2;
|
||||
|
@ -214,6 +218,7 @@ SET INSERT_ID=5;
|
|||
SET TIMESTAMP=1000000000;
|
||||
insert into t1 (b) values(@@collation_connection);
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=5,@@session.collation_server=64;
|
||||
truncate table t1;
|
||||
SET INSERT_ID=1;
|
||||
|
@ -224,6 +229,7 @@ SET TIMESTAMP=1000000000;
|
|||
insert into t1 (b) values(LEAST("Müller","Muffler"));
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=31,@@session.collation_server=64;
|
||||
insert into t1 (b) values(@@collation_connection);
|
||||
SET INSERT_ID=4;
|
||||
|
@ -241,9 +247,11 @@ SET TIMESTAMP=1000000000;
|
|||
drop database mysqltest3;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=30;
|
||||
CREATE TABLE t1 (c1 VARBINARY(255), c2 VARBINARY(255));
|
||||
SET TIMESTAMP=1000000000;
|
||||
/*!\C koi8r */;
|
||||
SET @@session.character_set_client=7,@@session.collation_connection=51,@@session.collation_server=30;
|
||||
INSERT INTO t1 (c1, c2) VALUES ('îÕ, ÚÁ ÒÙÂÁÌËÕ','îÕ, ÚÁ ÒÙÂÁÌËÕ');
|
||||
# End of log file
|
||||
|
|
|
@ -48,6 +48,7 @@ use test;
|
|||
SET TIMESTAMP=100000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
create table t1 (t timestamp);
|
||||
SET TIMESTAMP=100000000;
|
||||
|
|
|
@ -134,3 +134,724 @@ insert into test.t1 values (1);
|
|||
use test;
|
||||
drop table t1,t2;
|
||||
drop database other;
|
||||
test case for BUG#13227
|
||||
-------------------
|
||||
10
|
||||
-------------------
|
||||
drop table if exists t110;
|
||||
drop table if exists t210,t310;
|
||||
create table t110 (f1 int) /* 2 replicate */;
|
||||
insert into t110 values (-5);
|
||||
insert into t110 values (-4);
|
||||
insert into t110 values (-3);
|
||||
insert into t110 values (-2);
|
||||
insert into t110 values (-1);
|
||||
select * from t110;
|
||||
f1
|
||||
-5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
create trigger trg110 before update on t110 /* slave local */
|
||||
for each row
|
||||
begin
|
||||
DECLARE r integer;
|
||||
SELECT f2 INTO r FROM t210 where f1=NEW.f1;
|
||||
INSERT INTO t310 values (r);
|
||||
end|
|
||||
create table t210 (f1 int, f2 int) /* slave local */;
|
||||
create table t310 (f3 int) /* slave local */;
|
||||
insert into t210 values (5, 5*100);
|
||||
insert into t210 values (4, 4*100);
|
||||
insert into t210 values (3, 3*100);
|
||||
insert into t210 values (2, 2*100);
|
||||
insert into t210 values (1, 1*100);
|
||||
select * from t210;
|
||||
f1 f2
|
||||
5 500
|
||||
4 400
|
||||
3 300
|
||||
2 200
|
||||
1 100
|
||||
UPDATE t110 SET f1=5 where f1=-5;
|
||||
SELECT * from t110 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
|
||||
f1
|
||||
5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
SELECT * from t310 /* must be f3 5*100 */;
|
||||
f3
|
||||
500
|
||||
UPDATE t110 SET f1=5 where f1=-5;
|
||||
UPDATE t110 SET f1=4 where f1=-4;
|
||||
UPDATE t110 SET f1=3 where f1=-3;
|
||||
UPDATE t110 SET f1=2 where f1=-2;
|
||||
UPDATE t110 SET f1=1 where f1=-1;
|
||||
SELECT * from t110 /* must be f1 5 ... 1 */;
|
||||
f1
|
||||
5
|
||||
4
|
||||
3
|
||||
2
|
||||
1
|
||||
SELECT * from t310 /* must be f3 5 * 100 ... 100 */;
|
||||
f3
|
||||
500
|
||||
400
|
||||
300
|
||||
200
|
||||
100
|
||||
drop trigger trg110;
|
||||
drop table t210,t310;
|
||||
drop table t110;
|
||||
-------------------
|
||||
9
|
||||
-------------------
|
||||
drop table if exists t19;
|
||||
drop table if exists t29,t39;
|
||||
create table t19 (f1 int) /* 2 replicate */;
|
||||
insert into t19 values (-5);
|
||||
insert into t19 values (-4);
|
||||
insert into t19 values (-3);
|
||||
insert into t19 values (-2);
|
||||
insert into t19 values (-1);
|
||||
select * from t19;
|
||||
f1
|
||||
-5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
create trigger trg19 before update on t19 /* slave local */
|
||||
for each row
|
||||
begin
|
||||
DECLARE r integer;
|
||||
SELECT f2 INTO r FROM t29 where f1=NEW.f1;
|
||||
INSERT INTO t39 values (r);
|
||||
end|
|
||||
create table t29 (f1 int, f2 int) /* slave local */;
|
||||
create table t39 (f3 int) /* slave local */;
|
||||
insert into t29 values (5, 5*100);
|
||||
insert into t29 values (4, 4*100);
|
||||
insert into t29 values (3, 3*100);
|
||||
insert into t29 values (2, 2*100);
|
||||
insert into t29 values (1, 1*100);
|
||||
select * from t29;
|
||||
f1 f2
|
||||
5 500
|
||||
4 400
|
||||
3 300
|
||||
2 200
|
||||
1 100
|
||||
UPDATE t19 SET f1=5 where f1=-5;
|
||||
SELECT * from t19 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
|
||||
f1
|
||||
5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
SELECT * from t39 /* must be f3 5*100 */;
|
||||
f3
|
||||
500
|
||||
UPDATE t19 SET f1=5 where f1=-5;
|
||||
UPDATE t19 SET f1=4 where f1=-4;
|
||||
UPDATE t19 SET f1=3 where f1=-3;
|
||||
UPDATE t19 SET f1=2 where f1=-2;
|
||||
UPDATE t19 SET f1=1 where f1=-1;
|
||||
SELECT * from t19 /* must be f1 5 ... 1 */;
|
||||
f1
|
||||
5
|
||||
4
|
||||
3
|
||||
2
|
||||
1
|
||||
SELECT * from t39 /* must be f3 5 * 100 ... 100 */;
|
||||
f3
|
||||
500
|
||||
400
|
||||
300
|
||||
200
|
||||
100
|
||||
drop trigger trg19;
|
||||
drop table t29,t39;
|
||||
drop table t19;
|
||||
-------------------
|
||||
8
|
||||
-------------------
|
||||
drop table if exists t18;
|
||||
drop table if exists t28,t38;
|
||||
create table t18 (f1 int) /* 2 replicate */;
|
||||
insert into t18 values (-5);
|
||||
insert into t18 values (-4);
|
||||
insert into t18 values (-3);
|
||||
insert into t18 values (-2);
|
||||
insert into t18 values (-1);
|
||||
select * from t18;
|
||||
f1
|
||||
-5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
create trigger trg18 before update on t18 /* slave local */
|
||||
for each row
|
||||
begin
|
||||
DECLARE r integer;
|
||||
SELECT f2 INTO r FROM t28 where f1=NEW.f1;
|
||||
INSERT INTO t38 values (r);
|
||||
end|
|
||||
create table t28 (f1 int, f2 int) /* slave local */;
|
||||
create table t38 (f3 int) /* slave local */;
|
||||
insert into t28 values (5, 5*100);
|
||||
insert into t28 values (4, 4*100);
|
||||
insert into t28 values (3, 3*100);
|
||||
insert into t28 values (2, 2*100);
|
||||
insert into t28 values (1, 1*100);
|
||||
select * from t28;
|
||||
f1 f2
|
||||
5 500
|
||||
4 400
|
||||
3 300
|
||||
2 200
|
||||
1 100
|
||||
UPDATE t18 SET f1=5 where f1=-5;
|
||||
SELECT * from t18 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
|
||||
f1
|
||||
5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
SELECT * from t38 /* must be f3 5*100 */;
|
||||
f3
|
||||
500
|
||||
UPDATE t18 SET f1=5 where f1=-5;
|
||||
UPDATE t18 SET f1=4 where f1=-4;
|
||||
UPDATE t18 SET f1=3 where f1=-3;
|
||||
UPDATE t18 SET f1=2 where f1=-2;
|
||||
UPDATE t18 SET f1=1 where f1=-1;
|
||||
SELECT * from t18 /* must be f1 5 ... 1 */;
|
||||
f1
|
||||
5
|
||||
4
|
||||
3
|
||||
2
|
||||
1
|
||||
SELECT * from t38 /* must be f3 5 * 100 ... 100 */;
|
||||
f3
|
||||
500
|
||||
400
|
||||
300
|
||||
200
|
||||
100
|
||||
drop trigger trg18;
|
||||
drop table t28,t38;
|
||||
drop table t18;
|
||||
-------------------
|
||||
7
|
||||
-------------------
|
||||
drop table if exists t17;
|
||||
drop table if exists t27,t37;
|
||||
create table t17 (f1 int) /* 2 replicate */;
|
||||
insert into t17 values (-5);
|
||||
insert into t17 values (-4);
|
||||
insert into t17 values (-3);
|
||||
insert into t17 values (-2);
|
||||
insert into t17 values (-1);
|
||||
select * from t17;
|
||||
f1
|
||||
-5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
create trigger trg17 before update on t17 /* slave local */
|
||||
for each row
|
||||
begin
|
||||
DECLARE r integer;
|
||||
SELECT f2 INTO r FROM t27 where f1=NEW.f1;
|
||||
INSERT INTO t37 values (r);
|
||||
end|
|
||||
create table t27 (f1 int, f2 int) /* slave local */;
|
||||
create table t37 (f3 int) /* slave local */;
|
||||
insert into t27 values (5, 5*100);
|
||||
insert into t27 values (4, 4*100);
|
||||
insert into t27 values (3, 3*100);
|
||||
insert into t27 values (2, 2*100);
|
||||
insert into t27 values (1, 1*100);
|
||||
select * from t27;
|
||||
f1 f2
|
||||
5 500
|
||||
4 400
|
||||
3 300
|
||||
2 200
|
||||
1 100
|
||||
UPDATE t17 SET f1=5 where f1=-5;
|
||||
SELECT * from t17 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
|
||||
f1
|
||||
5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
SELECT * from t37 /* must be f3 5*100 */;
|
||||
f3
|
||||
500
|
||||
UPDATE t17 SET f1=5 where f1=-5;
|
||||
UPDATE t17 SET f1=4 where f1=-4;
|
||||
UPDATE t17 SET f1=3 where f1=-3;
|
||||
UPDATE t17 SET f1=2 where f1=-2;
|
||||
UPDATE t17 SET f1=1 where f1=-1;
|
||||
SELECT * from t17 /* must be f1 5 ... 1 */;
|
||||
f1
|
||||
5
|
||||
4
|
||||
3
|
||||
2
|
||||
1
|
||||
SELECT * from t37 /* must be f3 5 * 100 ... 100 */;
|
||||
f3
|
||||
500
|
||||
400
|
||||
300
|
||||
200
|
||||
100
|
||||
drop trigger trg17;
|
||||
drop table t27,t37;
|
||||
drop table t17;
|
||||
-------------------
|
||||
6
|
||||
-------------------
|
||||
drop table if exists t16;
|
||||
drop table if exists t26,t36;
|
||||
create table t16 (f1 int) /* 2 replicate */;
|
||||
insert into t16 values (-5);
|
||||
insert into t16 values (-4);
|
||||
insert into t16 values (-3);
|
||||
insert into t16 values (-2);
|
||||
insert into t16 values (-1);
|
||||
select * from t16;
|
||||
f1
|
||||
-5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
create trigger trg16 before update on t16 /* slave local */
|
||||
for each row
|
||||
begin
|
||||
DECLARE r integer;
|
||||
SELECT f2 INTO r FROM t26 where f1=NEW.f1;
|
||||
INSERT INTO t36 values (r);
|
||||
end|
|
||||
create table t26 (f1 int, f2 int) /* slave local */;
|
||||
create table t36 (f3 int) /* slave local */;
|
||||
insert into t26 values (5, 5*100);
|
||||
insert into t26 values (4, 4*100);
|
||||
insert into t26 values (3, 3*100);
|
||||
insert into t26 values (2, 2*100);
|
||||
insert into t26 values (1, 1*100);
|
||||
select * from t26;
|
||||
f1 f2
|
||||
5 500
|
||||
4 400
|
||||
3 300
|
||||
2 200
|
||||
1 100
|
||||
UPDATE t16 SET f1=5 where f1=-5;
|
||||
SELECT * from t16 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
|
||||
f1
|
||||
5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
SELECT * from t36 /* must be f3 5*100 */;
|
||||
f3
|
||||
500
|
||||
UPDATE t16 SET f1=5 where f1=-5;
|
||||
UPDATE t16 SET f1=4 where f1=-4;
|
||||
UPDATE t16 SET f1=3 where f1=-3;
|
||||
UPDATE t16 SET f1=2 where f1=-2;
|
||||
UPDATE t16 SET f1=1 where f1=-1;
|
||||
SELECT * from t16 /* must be f1 5 ... 1 */;
|
||||
f1
|
||||
5
|
||||
4
|
||||
3
|
||||
2
|
||||
1
|
||||
SELECT * from t36 /* must be f3 5 * 100 ... 100 */;
|
||||
f3
|
||||
500
|
||||
400
|
||||
300
|
||||
200
|
||||
100
|
||||
drop trigger trg16;
|
||||
drop table t26,t36;
|
||||
drop table t16;
|
||||
-------------------
|
||||
5
|
||||
-------------------
|
||||
drop table if exists t15;
|
||||
drop table if exists t25,t35;
|
||||
create table t15 (f1 int) /* 2 replicate */;
|
||||
insert into t15 values (-5);
|
||||
insert into t15 values (-4);
|
||||
insert into t15 values (-3);
|
||||
insert into t15 values (-2);
|
||||
insert into t15 values (-1);
|
||||
select * from t15;
|
||||
f1
|
||||
-5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
create trigger trg15 before update on t15 /* slave local */
|
||||
for each row
|
||||
begin
|
||||
DECLARE r integer;
|
||||
SELECT f2 INTO r FROM t25 where f1=NEW.f1;
|
||||
INSERT INTO t35 values (r);
|
||||
end|
|
||||
create table t25 (f1 int, f2 int) /* slave local */;
|
||||
create table t35 (f3 int) /* slave local */;
|
||||
insert into t25 values (5, 5*100);
|
||||
insert into t25 values (4, 4*100);
|
||||
insert into t25 values (3, 3*100);
|
||||
insert into t25 values (2, 2*100);
|
||||
insert into t25 values (1, 1*100);
|
||||
select * from t25;
|
||||
f1 f2
|
||||
5 500
|
||||
4 400
|
||||
3 300
|
||||
2 200
|
||||
1 100
|
||||
UPDATE t15 SET f1=5 where f1=-5;
|
||||
SELECT * from t15 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
|
||||
f1
|
||||
5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
SELECT * from t35 /* must be f3 5*100 */;
|
||||
f3
|
||||
500
|
||||
UPDATE t15 SET f1=5 where f1=-5;
|
||||
UPDATE t15 SET f1=4 where f1=-4;
|
||||
UPDATE t15 SET f1=3 where f1=-3;
|
||||
UPDATE t15 SET f1=2 where f1=-2;
|
||||
UPDATE t15 SET f1=1 where f1=-1;
|
||||
SELECT * from t15 /* must be f1 5 ... 1 */;
|
||||
f1
|
||||
5
|
||||
4
|
||||
3
|
||||
2
|
||||
1
|
||||
SELECT * from t35 /* must be f3 5 * 100 ... 100 */;
|
||||
f3
|
||||
500
|
||||
400
|
||||
300
|
||||
200
|
||||
100
|
||||
drop trigger trg15;
|
||||
drop table t25,t35;
|
||||
drop table t15;
|
||||
-------------------
|
||||
4
|
||||
-------------------
|
||||
drop table if exists t14;
|
||||
drop table if exists t24,t34;
|
||||
create table t14 (f1 int) /* 2 replicate */;
|
||||
insert into t14 values (-5);
|
||||
insert into t14 values (-4);
|
||||
insert into t14 values (-3);
|
||||
insert into t14 values (-2);
|
||||
insert into t14 values (-1);
|
||||
select * from t14;
|
||||
f1
|
||||
-5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
create trigger trg14 before update on t14 /* slave local */
|
||||
for each row
|
||||
begin
|
||||
DECLARE r integer;
|
||||
SELECT f2 INTO r FROM t24 where f1=NEW.f1;
|
||||
INSERT INTO t34 values (r);
|
||||
end|
|
||||
create table t24 (f1 int, f2 int) /* slave local */;
|
||||
create table t34 (f3 int) /* slave local */;
|
||||
insert into t24 values (5, 5*100);
|
||||
insert into t24 values (4, 4*100);
|
||||
insert into t24 values (3, 3*100);
|
||||
insert into t24 values (2, 2*100);
|
||||
insert into t24 values (1, 1*100);
|
||||
select * from t24;
|
||||
f1 f2
|
||||
5 500
|
||||
4 400
|
||||
3 300
|
||||
2 200
|
||||
1 100
|
||||
UPDATE t14 SET f1=5 where f1=-5;
|
||||
SELECT * from t14 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
|
||||
f1
|
||||
5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
SELECT * from t34 /* must be f3 5*100 */;
|
||||
f3
|
||||
500
|
||||
UPDATE t14 SET f1=5 where f1=-5;
|
||||
UPDATE t14 SET f1=4 where f1=-4;
|
||||
UPDATE t14 SET f1=3 where f1=-3;
|
||||
UPDATE t14 SET f1=2 where f1=-2;
|
||||
UPDATE t14 SET f1=1 where f1=-1;
|
||||
SELECT * from t14 /* must be f1 5 ... 1 */;
|
||||
f1
|
||||
5
|
||||
4
|
||||
3
|
||||
2
|
||||
1
|
||||
SELECT * from t34 /* must be f3 5 * 100 ... 100 */;
|
||||
f3
|
||||
500
|
||||
400
|
||||
300
|
||||
200
|
||||
100
|
||||
drop trigger trg14;
|
||||
drop table t24,t34;
|
||||
drop table t14;
|
||||
-------------------
|
||||
3
|
||||
-------------------
|
||||
drop table if exists t13;
|
||||
drop table if exists t23,t33;
|
||||
create table t13 (f1 int) /* 2 replicate */;
|
||||
insert into t13 values (-5);
|
||||
insert into t13 values (-4);
|
||||
insert into t13 values (-3);
|
||||
insert into t13 values (-2);
|
||||
insert into t13 values (-1);
|
||||
select * from t13;
|
||||
f1
|
||||
-5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
create trigger trg13 before update on t13 /* slave local */
|
||||
for each row
|
||||
begin
|
||||
DECLARE r integer;
|
||||
SELECT f2 INTO r FROM t23 where f1=NEW.f1;
|
||||
INSERT INTO t33 values (r);
|
||||
end|
|
||||
create table t23 (f1 int, f2 int) /* slave local */;
|
||||
create table t33 (f3 int) /* slave local */;
|
||||
insert into t23 values (5, 5*100);
|
||||
insert into t23 values (4, 4*100);
|
||||
insert into t23 values (3, 3*100);
|
||||
insert into t23 values (2, 2*100);
|
||||
insert into t23 values (1, 1*100);
|
||||
select * from t23;
|
||||
f1 f2
|
||||
5 500
|
||||
4 400
|
||||
3 300
|
||||
2 200
|
||||
1 100
|
||||
UPDATE t13 SET f1=5 where f1=-5;
|
||||
SELECT * from t13 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
|
||||
f1
|
||||
5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
SELECT * from t33 /* must be f3 5*100 */;
|
||||
f3
|
||||
500
|
||||
UPDATE t13 SET f1=5 where f1=-5;
|
||||
UPDATE t13 SET f1=4 where f1=-4;
|
||||
UPDATE t13 SET f1=3 where f1=-3;
|
||||
UPDATE t13 SET f1=2 where f1=-2;
|
||||
UPDATE t13 SET f1=1 where f1=-1;
|
||||
SELECT * from t13 /* must be f1 5 ... 1 */;
|
||||
f1
|
||||
5
|
||||
4
|
||||
3
|
||||
2
|
||||
1
|
||||
SELECT * from t33 /* must be f3 5 * 100 ... 100 */;
|
||||
f3
|
||||
500
|
||||
400
|
||||
300
|
||||
200
|
||||
100
|
||||
drop trigger trg13;
|
||||
drop table t23,t33;
|
||||
drop table t13;
|
||||
-------------------
|
||||
2
|
||||
-------------------
|
||||
drop table if exists t12;
|
||||
drop table if exists t22,t32;
|
||||
create table t12 (f1 int) /* 2 replicate */;
|
||||
insert into t12 values (-5);
|
||||
insert into t12 values (-4);
|
||||
insert into t12 values (-3);
|
||||
insert into t12 values (-2);
|
||||
insert into t12 values (-1);
|
||||
select * from t12;
|
||||
f1
|
||||
-5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
create trigger trg12 before update on t12 /* slave local */
|
||||
for each row
|
||||
begin
|
||||
DECLARE r integer;
|
||||
SELECT f2 INTO r FROM t22 where f1=NEW.f1;
|
||||
INSERT INTO t32 values (r);
|
||||
end|
|
||||
create table t22 (f1 int, f2 int) /* slave local */;
|
||||
create table t32 (f3 int) /* slave local */;
|
||||
insert into t22 values (5, 5*100);
|
||||
insert into t22 values (4, 4*100);
|
||||
insert into t22 values (3, 3*100);
|
||||
insert into t22 values (2, 2*100);
|
||||
insert into t22 values (1, 1*100);
|
||||
select * from t22;
|
||||
f1 f2
|
||||
5 500
|
||||
4 400
|
||||
3 300
|
||||
2 200
|
||||
1 100
|
||||
UPDATE t12 SET f1=5 where f1=-5;
|
||||
SELECT * from t12 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
|
||||
f1
|
||||
5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
SELECT * from t32 /* must be f3 5*100 */;
|
||||
f3
|
||||
500
|
||||
UPDATE t12 SET f1=5 where f1=-5;
|
||||
UPDATE t12 SET f1=4 where f1=-4;
|
||||
UPDATE t12 SET f1=3 where f1=-3;
|
||||
UPDATE t12 SET f1=2 where f1=-2;
|
||||
UPDATE t12 SET f1=1 where f1=-1;
|
||||
SELECT * from t12 /* must be f1 5 ... 1 */;
|
||||
f1
|
||||
5
|
||||
4
|
||||
3
|
||||
2
|
||||
1
|
||||
SELECT * from t32 /* must be f3 5 * 100 ... 100 */;
|
||||
f3
|
||||
500
|
||||
400
|
||||
300
|
||||
200
|
||||
100
|
||||
drop trigger trg12;
|
||||
drop table t22,t32;
|
||||
drop table t12;
|
||||
-------------------
|
||||
1
|
||||
-------------------
|
||||
drop table if exists t11;
|
||||
drop table if exists t21,t31;
|
||||
create table t11 (f1 int) /* 2 replicate */;
|
||||
insert into t11 values (-5);
|
||||
insert into t11 values (-4);
|
||||
insert into t11 values (-3);
|
||||
insert into t11 values (-2);
|
||||
insert into t11 values (-1);
|
||||
select * from t11;
|
||||
f1
|
||||
-5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
create trigger trg11 before update on t11 /* slave local */
|
||||
for each row
|
||||
begin
|
||||
DECLARE r integer;
|
||||
SELECT f2 INTO r FROM t21 where f1=NEW.f1;
|
||||
INSERT INTO t31 values (r);
|
||||
end|
|
||||
create table t21 (f1 int, f2 int) /* slave local */;
|
||||
create table t31 (f3 int) /* slave local */;
|
||||
insert into t21 values (5, 5*100);
|
||||
insert into t21 values (4, 4*100);
|
||||
insert into t21 values (3, 3*100);
|
||||
insert into t21 values (2, 2*100);
|
||||
insert into t21 values (1, 1*100);
|
||||
select * from t21;
|
||||
f1 f2
|
||||
5 500
|
||||
4 400
|
||||
3 300
|
||||
2 200
|
||||
1 100
|
||||
UPDATE t11 SET f1=5 where f1=-5;
|
||||
SELECT * from t11 /* must be f1 5, 1 - 5 2 - 5 ... -1 */;
|
||||
f1
|
||||
5
|
||||
-4
|
||||
-3
|
||||
-2
|
||||
-1
|
||||
SELECT * from t31 /* must be f3 5*100 */;
|
||||
f3
|
||||
500
|
||||
UPDATE t11 SET f1=5 where f1=-5;
|
||||
UPDATE t11 SET f1=4 where f1=-4;
|
||||
UPDATE t11 SET f1=3 where f1=-3;
|
||||
UPDATE t11 SET f1=2 where f1=-2;
|
||||
UPDATE t11 SET f1=1 where f1=-1;
|
||||
SELECT * from t11 /* must be f1 5 ... 1 */;
|
||||
f1
|
||||
5
|
||||
4
|
||||
3
|
||||
2
|
||||
1
|
||||
SELECT * from t31 /* must be f3 5 * 100 ... 100 */;
|
||||
f3
|
||||
500
|
||||
400
|
||||
300
|
||||
200
|
||||
100
|
||||
drop trigger trg11;
|
||||
drop table t21,t31;
|
||||
drop table t11;
|
||||
|
|
|
@ -21,6 +21,7 @@ use test;
|
|||
SET TIMESTAMP=10000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
/*!\C latin1 */;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
INSERT INTO t1 VALUES(@`a b`);
|
||||
SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`;
|
||||
|
|
|
@ -41,3 +41,16 @@ lock tables t1 write;
|
|||
unlock tables;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#16217 - MySQL client misinterpretes multi-byte char as escape `\'
|
||||
#
|
||||
|
||||
# new command \C or charset
|
||||
--exec $MYSQL --default-character-set=utf8 test -e "\C cp932 \g"
|
||||
--exec $MYSQL --default-character-set=cp932 test -e "charset utf8;"
|
||||
|
||||
# its usage to switch internally in mysql to requested charset
|
||||
--exec $MYSQL --default-character-set=utf8 test -e "charset cp932; set @@session.character_set_client= cp932; select 'ƒ\'; create table t1 (c_cp932 TEXT CHARACTER SET cp932); insert into t1 values('ƒ\'); select * from t1; drop table t1;"
|
||||
--exec $MYSQL --default-character-set=utf8 test -e "charset cp932; set character_set_client= cp932; select 'ƒ\'"
|
||||
--exec $MYSQL --default-character-set=utf8 test -e "/*charset cp932 */; set character_set_client= cp932; select 'ƒ\'"
|
||||
--exec $MYSQL --default-character-set=utf8 test -e "/*!\C cp932 */; set character_set_client= cp932; select 'ƒ\'"
|
||||
|
|
|
@ -107,7 +107,24 @@ select "--- reading stdin --" as "";
|
|||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
--exec $MYSQL_BINLOG --short-form --position=79 - < $MYSQL_TEST_DIR/std_data/trunc_binlog.000001
|
||||
|
||||
# Bug#16217 (mysql client did not know how not switch its internal charset)
|
||||
flush logs;
|
||||
create table t3 (f text character set utf8);
|
||||
create table t4 (f text character set cp932);
|
||||
--exec $MYSQL --default-character-set=utf8 test -e "insert into t3 values(_utf8'ソ')"
|
||||
--exec $MYSQL --default-character-set=cp932 test -e "insert into t4 values(_cp932'ƒ\');"
|
||||
flush logs;
|
||||
rename table t3 to t03, t4 to t04;
|
||||
--exec $MYSQL_BINLOG --short-form $MYSQLTEST_VARDIR/log/master-bin.000004 | $MYSQL --default-character-set=utf8
|
||||
# original and recovered data must be equal
|
||||
select HEX(f) from t03;
|
||||
select HEX(f) from t3;
|
||||
select HEX(f) from t04;
|
||||
select HEX(f) from t4;
|
||||
|
||||
|
||||
|
||||
# clean up
|
||||
drop table t1, t2;
|
||||
drop table t1, t2, t03, t04, t3, t4;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
|
|
@ -163,7 +163,103 @@ drop table t1,t2;
|
|||
drop database other;
|
||||
|
||||
#
|
||||
# End of test
|
||||
# Test specific triggers including SELECT into var with replication
|
||||
# BUG#13227:
|
||||
# slave performs an update to the replicatable table, t1,
|
||||
# and modifies its local data, t3, by mean of its local trigger that uses
|
||||
# another local table t2.
|
||||
# Expected values are commented into queries.
|
||||
#
|
||||
# Body of the test executes in a loop since the problem occurred randomly.
|
||||
#
|
||||
|
||||
let $max_rows=5;
|
||||
let $rnd=10;
|
||||
|
||||
--echo test case for BUG#13227
|
||||
while ($rnd)
|
||||
{
|
||||
--echo -------------------
|
||||
echo $rnd;
|
||||
--echo -------------------
|
||||
|
||||
### SETUP
|
||||
|
||||
--disable_warnings
|
||||
connection master;
|
||||
eval drop table if exists t1$rnd;
|
||||
connection slave;
|
||||
eval drop table if exists t2$rnd,t3$rnd;
|
||||
--enable_warnings
|
||||
|
||||
connection master;
|
||||
eval create table t1$rnd (f1 int) /* 2 replicate */;
|
||||
let $i=$max_rows;
|
||||
while ($i)
|
||||
{
|
||||
eval insert into t1$rnd values (-$i);
|
||||
dec $i;
|
||||
}
|
||||
|
||||
sync_slave_with_master;
|
||||
#connection slave;
|
||||
eval select * from t1$rnd;
|
||||
delimiter |;
|
||||
eval create trigger trg1$rnd before update on t1$rnd /* slave local */
|
||||
for each row
|
||||
begin
|
||||
DECLARE r integer;
|
||||
SELECT f2 INTO r FROM t2$rnd where f1=NEW.f1;
|
||||
INSERT INTO t3$rnd values (r);
|
||||
end|
|
||||
delimiter ;|
|
||||
eval create table t2$rnd (f1 int, f2 int) /* slave local */;
|
||||
eval create table t3$rnd (f3 int) /* slave local */;
|
||||
let $i=$max_rows;
|
||||
while ($i)
|
||||
{
|
||||
eval insert into t2$rnd values ($i, $i*100);
|
||||
dec $i;
|
||||
}
|
||||
|
||||
### Test
|
||||
|
||||
#connection slave;
|
||||
|
||||
# trigger works as specified when updates from slave
|
||||
eval select * from t2$rnd;
|
||||
eval UPDATE t1$rnd SET f1=$max_rows where f1=-$max_rows;
|
||||
eval SELECT * from t1$rnd /* must be f1 $max_rows, 1 - $max_rows 2 - $max_rows ... -1 */;
|
||||
eval SELECT * from t3$rnd /* must be f3 $max_rows*100 */;
|
||||
|
||||
connection master;
|
||||
let $i=$max_rows;
|
||||
while ($i)
|
||||
{
|
||||
eval UPDATE t1$rnd SET f1=$i where f1=-$i;
|
||||
dec $i;
|
||||
}
|
||||
|
||||
sync_slave_with_master;
|
||||
#connection slave;
|
||||
eval SELECT * from t1$rnd /* must be f1 $max_rows ... 1 */;
|
||||
eval SELECT * from t3$rnd /* must be f3 $max_rows * 100 ... 100 */;
|
||||
|
||||
### CLEANUP
|
||||
#connection slave;
|
||||
eval drop trigger trg1$rnd;
|
||||
eval drop table t2$rnd,t3$rnd;
|
||||
|
||||
connection master;
|
||||
eval drop table t1$rnd;
|
||||
|
||||
dec $rnd;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#
|
||||
# End of tests
|
||||
#
|
||||
save_master_pos;
|
||||
connection slave;
|
||||
|
|
|
@ -1551,6 +1551,11 @@ void Query_log_event::print_query_header(FILE* file,
|
|||
}
|
||||
if (unlikely(bcmp(print_event_info->charset, charset, 6)))
|
||||
{
|
||||
CHARSET_INFO *cs_info= get_charset(uint2korr(charset), MYF(MY_WME));
|
||||
if (cs_info)
|
||||
{
|
||||
fprintf(file, "/*!\\C %s */;\n", cs_info->csname); /* for mysql client */
|
||||
}
|
||||
fprintf(file,"SET "
|
||||
"@@session.character_set_client=%d,"
|
||||
"@@session.collation_connection=%d,"
|
||||
|
|
Loading…
Add table
Reference in a new issue