mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge 10.5 into 10.6
This commit is contained in:
13
CREDITS
13
CREDITS
@ -4,24 +4,19 @@ organization registered in the USA.
|
|||||||
The current main sponsors of the MariaDB Foundation are:
|
The current main sponsors of the MariaDB Foundation are:
|
||||||
|
|
||||||
Alibaba Cloud https://www.alibabacloud.com/ (2017)
|
Alibaba Cloud https://www.alibabacloud.com/ (2017)
|
||||||
Booking.com https://www.booking.com (2013)
|
|
||||||
MariaDB Corporation https://www.mariadb.com (2013)
|
MariaDB Corporation https://www.mariadb.com (2013)
|
||||||
Microsoft https://microsoft.com/ (2017)
|
Microsoft https://microsoft.com/ (2017)
|
||||||
|
ServiceNow https://servicenow.com (2019)
|
||||||
Tencent Cloud https://cloud.tencent.com (2017)
|
Tencent Cloud https://cloud.tencent.com (2017)
|
||||||
Development Bank of Singapore https://dbs.com (2016)
|
Development Bank of Singapore https://dbs.com (2016)
|
||||||
IBM https://www.ibm.com (2017)
|
IBM https://www.ibm.com (2017)
|
||||||
Tencent Games http://game.qq.com/ (2018)
|
|
||||||
Visma https://visma.com (2015)
|
Visma https://visma.com (2015)
|
||||||
Acronis https://acronis.com (2016)
|
Automattic https://automattic.com (2019)
|
||||||
Nexedi https://www.nexedi.com (2016)
|
Galera Cluster https://galeracluster.com (2020)
|
||||||
Percona https://www.percona.com (2018)
|
Percona https://www.percona.com (2018)
|
||||||
Tencent Game DBA http://tencentdba.com/about (2016)
|
|
||||||
Tencent TDSQL http://tdsql.org (2016)
|
|
||||||
Verkkokauppa.com https://www.verkkokauppa.com (2015)
|
|
||||||
Virtuozzo https://virtuozzo.com (2016)
|
|
||||||
|
|
||||||
For a full list of sponsors, see
|
For a full list of sponsors, see
|
||||||
https://mariadb.org/about/supporters/
|
https://mariadb.org/about/#sponsors
|
||||||
and for individual contributors, see
|
and for individual contributors, see
|
||||||
https://mariadb.org/donate/individual-sponsors/
|
https://mariadb.org/donate/individual-sponsors/
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ IF(WIN32)
|
|||||||
MARK_AS_ADVANCED(SIGNCODE)
|
MARK_AS_ADVANCED(SIGNCODE)
|
||||||
IF(SIGNCODE)
|
IF(SIGNCODE)
|
||||||
SET(SIGNTOOL_PARAMETERS
|
SET(SIGNTOOL_PARAMETERS
|
||||||
/a /t http://timestamp.globalsign.com/scripts/timstamp.dll
|
/a /t http://timestamp.globalsign.com/?signature=sha2
|
||||||
CACHE STRING "parameters for signtool (list)")
|
CACHE STRING "parameters for signtool (list)")
|
||||||
FIND_PROGRAM(SIGNTOOL_EXECUTABLE signtool
|
FIND_PROGRAM(SIGNTOOL_EXECUTABLE signtool
|
||||||
PATHS "$ENV{ProgramFiles}/Microsoft SDKs/Windows/v7.0A/bin"
|
PATHS "$ENV{ProgramFiles}/Microsoft SDKs/Windows/v7.0A/bin"
|
||||||
|
@ -62,7 +62,6 @@ extern struct wsrep_service_st {
|
|||||||
int (*wsrep_thd_retry_counter_func)(const MYSQL_THD thd);
|
int (*wsrep_thd_retry_counter_func)(const MYSQL_THD thd);
|
||||||
bool (*wsrep_thd_ignore_table_func)(MYSQL_THD thd);
|
bool (*wsrep_thd_ignore_table_func)(MYSQL_THD thd);
|
||||||
long long (*wsrep_thd_trx_seqno_func)(const MYSQL_THD thd);
|
long long (*wsrep_thd_trx_seqno_func)(const MYSQL_THD thd);
|
||||||
void (*wsrep_thd_auto_increment_variables_func)(THD *thd, unsigned long long *offset, unsigned long long *increment);
|
|
||||||
my_bool (*wsrep_thd_is_aborting_func)(const MYSQL_THD thd);
|
my_bool (*wsrep_thd_is_aborting_func)(const MYSQL_THD thd);
|
||||||
void (*wsrep_set_data_home_dir_func)(const char *data_dir);
|
void (*wsrep_set_data_home_dir_func)(const char *data_dir);
|
||||||
my_bool (*wsrep_thd_is_BF_func)(const MYSQL_THD thd, my_bool sync);
|
my_bool (*wsrep_thd_is_BF_func)(const MYSQL_THD thd, my_bool sync);
|
||||||
@ -115,7 +114,6 @@ extern struct wsrep_service_st {
|
|||||||
#define wsrep_thd_retry_counter(T) wsrep_service->wsrep_thd_retry_counter_func(T)
|
#define wsrep_thd_retry_counter(T) wsrep_service->wsrep_thd_retry_counter_func(T)
|
||||||
#define wsrep_thd_ignore_table(T) wsrep_service->wsrep_thd_ignore_table_func(T)
|
#define wsrep_thd_ignore_table(T) wsrep_service->wsrep_thd_ignore_table_func(T)
|
||||||
#define wsrep_thd_trx_seqno(T) wsrep_service->wsrep_thd_trx_seqno_func(T)
|
#define wsrep_thd_trx_seqno(T) wsrep_service->wsrep_thd_trx_seqno_func(T)
|
||||||
#define wsrep_thd_auto_increment_variables(T,O,I) wsrep_service->wsrep_thd_auto_increment_variables_func(T,O,I)
|
|
||||||
#define wsrep_set_data_home_dir(A) wsrep_service->wsrep_set_data_home_dir_func(A)
|
#define wsrep_set_data_home_dir(A) wsrep_service->wsrep_set_data_home_dir_func(A)
|
||||||
#define wsrep_thd_is_BF(T,S) wsrep_service->wsrep_thd_is_BF_func(T,S)
|
#define wsrep_thd_is_BF(T,S) wsrep_service->wsrep_thd_is_BF_func(T,S)
|
||||||
#define wsrep_thd_is_aborting(T) wsrep_service->wsrep_thd_is_aborting_func(T)
|
#define wsrep_thd_is_aborting(T) wsrep_service->wsrep_thd_is_aborting_func(T)
|
||||||
@ -158,7 +156,6 @@ extern "C" long long wsrep_xid_seqno(const struct xid_t* xid);
|
|||||||
const unsigned char* wsrep_xid_uuid(const struct xid_t* xid);
|
const unsigned char* wsrep_xid_uuid(const struct xid_t* xid);
|
||||||
extern "C" long long wsrep_thd_trx_seqno(const MYSQL_THD thd);
|
extern "C" long long wsrep_thd_trx_seqno(const MYSQL_THD thd);
|
||||||
my_bool get_wsrep_recovery();
|
my_bool get_wsrep_recovery();
|
||||||
void wsrep_thd_auto_increment_variables(THD *thd, unsigned long long *offset, unsigned long long *increment);
|
|
||||||
bool wsrep_thd_ignore_table(MYSQL_THD thd);
|
bool wsrep_thd_ignore_table(MYSQL_THD thd);
|
||||||
void wsrep_set_data_home_dir(const char *data_dir);
|
void wsrep_set_data_home_dir(const char *data_dir);
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Copyright (c) 2009, 2010, Oracle and/or its affiliates.
|
/* Copyright (c) 2009, 2010, Oracle and/or its affiliates.
|
||||||
Copyright (c) 2012, 2019, MariaDB
|
Copyright (c) 2012, 2021, MariaDB
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -41,6 +41,6 @@
|
|||||||
#define VERSION_thd_specifics 0x0100
|
#define VERSION_thd_specifics 0x0100
|
||||||
#define VERSION_thd_timezone 0x0100
|
#define VERSION_thd_timezone 0x0100
|
||||||
#define VERSION_thd_wait 0x0100
|
#define VERSION_thd_wait 0x0100
|
||||||
#define VERSION_wsrep 0x0203
|
#define VERSION_wsrep 0x0500
|
||||||
#define VERSION_json 0x0100
|
#define VERSION_json 0x0100
|
||||||
#define VERSION_thd_mdl 0x0100
|
#define VERSION_thd_mdl 0x0100
|
||||||
|
@ -4444,7 +4444,7 @@ order by a desc limit 3 )
|
|||||||
(select a from t where a=4 union select a from t where a=7 order by a desc);
|
(select a from t where a=4 union select a from t where a=7 order by a desc);
|
||||||
show create view v1;
|
show create view v1;
|
||||||
View Create View character_set_client collation_connection
|
View Create View character_set_client collation_connection
|
||||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS with t as ((select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 3) union (select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` > 3) order by `a` desc limit 3)select `t`.`a` AS `a` from `t` where `t`.`a` = 4 union select `t`.`a` AS `a` from ((select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 3) union (select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` > 3) order by `a` desc limit 3) `t` where `t`.`a` = 7 order by `a` desc latin1 latin1_swedish_ci
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS with t as ((select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 3) union (select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` > 3) order by `a` desc limit 3)select `t`.`a` AS `a` from `t` where `t`.`a` = 4 union select `t`.`a` AS `a` from `t` where `t`.`a` = 7 order by `a` desc latin1 latin1_swedish_ci
|
||||||
select * from v1;
|
select * from v1;
|
||||||
a
|
a
|
||||||
7
|
7
|
||||||
@ -4508,7 +4508,7 @@ s as (select * from t where a > 3)
|
|||||||
select a from t where a=1 union select a from s where a=7 order by a desc;
|
select a from t where a=1 union select a from s where a=7 order by a desc;
|
||||||
show create view v1;
|
show create view v1;
|
||||||
View Create View character_set_client collation_connection
|
View Create View character_set_client collation_connection
|
||||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS with t as (select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 3), s as (select `t`.`a` AS `a` from (select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 3) `t` where `t`.`a` > 3)select `t`.`a` AS `a` from `t` where `t`.`a` = 1 union select `s`.`a` AS `a` from `s` where `s`.`a` = 7 order by `a` desc latin1 latin1_swedish_ci
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS with t as (select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 3), s as (select `t`.`a` AS `a` from `t` where `t`.`a` > 3)select `t`.`a` AS `a` from `t` where `t`.`a` = 1 union select `s`.`a` AS `a` from `s` where `s`.`a` = 7 order by `a` desc latin1 latin1_swedish_ci
|
||||||
select * from v1;
|
select * from v1;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
|
@ -1,21 +1,16 @@
|
|||||||
SHOW CONTRIBUTORS;
|
SHOW CONTRIBUTORS;
|
||||||
Name Location Comment
|
Name Location Comment
|
||||||
Booking.com https://www.booking.com Founding member, Platinum Sponsor of the MariaDB Foundation
|
|
||||||
Alibaba Cloud https://www.alibabacloud.com/ Platinum Sponsor of the MariaDB Foundation
|
Alibaba Cloud https://www.alibabacloud.com/ Platinum Sponsor of the MariaDB Foundation
|
||||||
Tencent Cloud https://cloud.tencent.com Platinum Sponsor of the MariaDB Foundation
|
Tencent Cloud https://cloud.tencent.com Platinum Sponsor of the MariaDB Foundation
|
||||||
Microsoft https://microsoft.com/ Platinum Sponsor of the MariaDB Foundation
|
Microsoft https://microsoft.com/ Platinum Sponsor of the MariaDB Foundation
|
||||||
MariaDB Corporation https://mariadb.com Founding member, Platinum Sponsor of the MariaDB Foundation
|
MariaDB Corporation https://mariadb.com Founding member, Platinum Sponsor of the MariaDB Foundation
|
||||||
|
ServiceNow https://servicenow.com Platinum Sponsor of the MariaDB Foundation
|
||||||
Visma https://visma.com Gold Sponsor of the MariaDB Foundation
|
Visma https://visma.com Gold Sponsor of the MariaDB Foundation
|
||||||
DBS https://dbs.com Gold Sponsor of the MariaDB Foundation
|
DBS https://dbs.com Gold Sponsor of the MariaDB Foundation
|
||||||
IBM https://www.ibm.com Gold Sponsor of the MariaDB Foundation
|
IBM https://www.ibm.com Gold Sponsor of the MariaDB Foundation
|
||||||
Tencent Games http://game.qq.com/ Gold Sponsor of the MariaDB Foundation
|
Automattic https://automattic.com Silver Sponsor of the MariaDB Foundation
|
||||||
Nexedi https://www.nexedi.com Silver Sponsor of the MariaDB Foundation
|
Percona https://www.percona.com/ Sponsor of the MariaDB Foundation
|
||||||
Acronis https://www.acronis.com Silver Sponsor of the MariaDB Foundation
|
Galera Cluster https://galeracluster.com Sponsor of the MariaDB Foundation
|
||||||
Verkkokauppa.com https://www.verkkokauppa.com Bronze Sponsor of the MariaDB Foundation
|
|
||||||
Virtuozzo https://virtuozzo.com Bronze Sponsor of the MariaDB Foundation
|
|
||||||
Tencent Game DBA http://tencentdba.com/about Bronze Sponsor of the MariaDB Foundation
|
|
||||||
Tencent TDSQL http://tdsql.org Bronze Sponsor of the MariaDB Foundation
|
|
||||||
Percona https://www.percona.com/ Bronze Sponsor of the MariaDB Foundation
|
|
||||||
Google USA Sponsoring encryption, parallel replication and GTID
|
Google USA Sponsoring encryption, parallel replication and GTID
|
||||||
Facebook USA Sponsoring non-blocking API, LIMIT ROWS EXAMINED etc
|
Facebook USA Sponsoring non-blocking API, LIMIT ROWS EXAMINED etc
|
||||||
Ronald Bradford Brisbane, Australia EFF contribution for UC2006 Auction
|
Ronald Bradford Brisbane, Australia EFF contribution for UC2006 Auction
|
||||||
|
@ -618,7 +618,7 @@ with t(c) as (select a from t1 where b >= 'c')
|
|||||||
select * from t r1, t r2 where r1.c=r2.c and r2.c=4;
|
select * from t r1, t r2 where r1.c=r2.c and r2.c=4;
|
||||||
show create view v4;
|
show create view v4;
|
||||||
View Create View character_set_client collation_connection
|
View Create View character_set_client collation_connection
|
||||||
v4 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS with t(`c`) as (select `test`.`t1`.`a` AS `c` from `test`.`t1` where `test`.`t1`.`b` >= 'c')select `r1`.`c` AS `c`,`r2`.`c` AS `d` from (`t` `r1` join (select `test`.`t1`.`a` AS `c` from `test`.`t1` where `test`.`t1`.`b` >= 'c') `r2`) where `r1`.`c` = `r2`.`c` and `r2`.`c` = 4 latin1 latin1_swedish_ci
|
v4 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS with t(`c`) as (select `test`.`t1`.`a` AS `c` from `test`.`t1` where `test`.`t1`.`b` >= 'c')select `r1`.`c` AS `c`,`r2`.`c` AS `d` from (`t` `r1` join `t` `r2`) where `r1`.`c` = `r2`.`c` and `r2`.`c` = 4 latin1 latin1_swedish_ci
|
||||||
select * from v4;
|
select * from v4;
|
||||||
c d
|
c d
|
||||||
4 4
|
4 4
|
||||||
@ -1126,7 +1126,7 @@ NULL UNION RESULT <union4,5> ALL NULL NULL NULL NULL NULL NULL
|
|||||||
NULL UNION RESULT <union11,12> ALL NULL NULL NULL NULL NULL NULL
|
NULL UNION RESULT <union11,12> ALL NULL NULL NULL NULL NULL NULL
|
||||||
NULL UNION RESULT <union1,6> ALL NULL NULL NULL NULL NULL NULL
|
NULL UNION RESULT <union1,6> ALL NULL NULL NULL NULL NULL NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1003 with cte_e as (with cte_o as (with cte_i as (select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 7)select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` > 1)select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 3 and `test`.`t1`.`a` > 1 and `test`.`t1`.`a` < 7 and `test`.`t1`.`a` > 1 union select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` > 4 and `test`.`t1`.`a` > 1 and `test`.`t1`.`a` < 7 and `test`.`t1`.`a` > 1)select `cte_e1`.`a` AS `a` from `cte_e` `cte_e1` where `cte_e1`.`a` > 1 union select `cte_e2`.`a` AS `a` from (with cte_o as (with cte_i as (select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 7)select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` > 1)select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 3 and `test`.`t1`.`a` > 1 and `test`.`t1`.`a` < 7 union select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` > 4 and `test`.`t1`.`a` > 1 and `test`.`t1`.`a` < 7) `cte_e2`
|
Note 1003 with cte_e as (with cte_o as (with cte_i as (select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 7)select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` > 1)select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` < 3 and `test`.`t1`.`a` > 1 and `test`.`t1`.`a` < 7 and `test`.`t1`.`a` > 1 union select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` > 4 and `test`.`t1`.`a` > 1 and `test`.`t1`.`a` < 7 and `test`.`t1`.`a` > 1)select `cte_e1`.`a` AS `a` from `cte_e` `cte_e1` where `cte_e1`.`a` > 1 union select `cte_e2`.`a` AS `a` from `cte_e` `cte_e2`
|
||||||
drop table t1;
|
drop table t1;
|
||||||
#
|
#
|
||||||
# MDEV-13753: embedded CTE in a VIEW created in prepared statement
|
# MDEV-13753: embedded CTE in a VIEW created in prepared statement
|
||||||
@ -1725,6 +1725,44 @@ drop table db1.t1;
|
|||||||
drop database db1;
|
drop database db1;
|
||||||
create database test;
|
create database test;
|
||||||
use test;
|
use test;
|
||||||
|
#
|
||||||
|
# MDEV-24597: CTE with union used multiple times in query
|
||||||
|
#
|
||||||
|
with cte(a) as
|
||||||
|
(select 1 as d union select 2 as d)
|
||||||
|
select a from cte as r1
|
||||||
|
union
|
||||||
|
select a from cte as r2;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
2
|
||||||
|
create table t1 (a int, b int) engine=myisam;
|
||||||
|
insert into t1 values
|
||||||
|
(3,30), (7,70), (1,10), (7,71), (2,20), (7,72), (3,33), (4,44),
|
||||||
|
(5,50), (4,40), (3,33), (4,42), (4,43), (5,51);
|
||||||
|
with cte(c) as
|
||||||
|
(select a from t1 where b < 30 union select a from t1 where b > 40)
|
||||||
|
select * from cte as r1, cte as r2 where r1.c = r2.c;
|
||||||
|
c c
|
||||||
|
1 1
|
||||||
|
2 2
|
||||||
|
7 7
|
||||||
|
4 4
|
||||||
|
5 5
|
||||||
|
with cte(a,c) as
|
||||||
|
(
|
||||||
|
select a, count(*) from t1 group by a having count(*) = 1
|
||||||
|
union
|
||||||
|
select a, count(*) from t1 group by a having count(*) = 3
|
||||||
|
)
|
||||||
|
select a, c from cte as r1 where a < 3
|
||||||
|
union
|
||||||
|
select a, c from cte as r2 where a > 4;
|
||||||
|
a c
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
7 3
|
||||||
|
drop table t1;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# MDEV-21673: several references to CTE that uses
|
# MDEV-21673: several references to CTE that uses
|
||||||
|
@ -1242,6 +1242,37 @@ drop database db1;
|
|||||||
create database test;
|
create database test;
|
||||||
use test;
|
use test;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-24597: CTE with union used multiple times in query
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
with cte(a) as
|
||||||
|
(select 1 as d union select 2 as d)
|
||||||
|
select a from cte as r1
|
||||||
|
union
|
||||||
|
select a from cte as r2;
|
||||||
|
|
||||||
|
create table t1 (a int, b int) engine=myisam;
|
||||||
|
insert into t1 values
|
||||||
|
(3,30), (7,70), (1,10), (7,71), (2,20), (7,72), (3,33), (4,44),
|
||||||
|
(5,50), (4,40), (3,33), (4,42), (4,43), (5,51);
|
||||||
|
|
||||||
|
with cte(c) as
|
||||||
|
(select a from t1 where b < 30 union select a from t1 where b > 40)
|
||||||
|
select * from cte as r1, cte as r2 where r1.c = r2.c;
|
||||||
|
|
||||||
|
with cte(a,c) as
|
||||||
|
(
|
||||||
|
select a, count(*) from t1 group by a having count(*) = 1
|
||||||
|
union
|
||||||
|
select a, count(*) from t1 group by a having count(*) = 3
|
||||||
|
)
|
||||||
|
select a, c from cte as r1 where a < 3
|
||||||
|
union
|
||||||
|
select a, c from cte as r2 where a > 4;
|
||||||
|
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -6069,6 +6069,63 @@ f2
|
|||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
set join_buffer_size=@save_join_buffer_size;
|
set join_buffer_size=@save_join_buffer_size;
|
||||||
#
|
#
|
||||||
|
# MDEV-21104: BNLH used for multi-join query with embedded outer join
|
||||||
|
# and possible 'not exists' optimization
|
||||||
|
#
|
||||||
|
set join_cache_level=4;
|
||||||
|
CREATE TABLE t1 (a int) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
|
CREATE TABLE t2 (b int, c int) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (1,2),(2,4);
|
||||||
|
CREATE TABLE t3 (d int, KEY(d)) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t3 VALUES (1),(2);
|
||||||
|
CREATE TABLE t4 (e int primary key) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t4 VALUES (1),(2);
|
||||||
|
ANALYZE TABLE t1,t2,t3,t4;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 analyze status Engine-independent statistics collected
|
||||||
|
test.t1 analyze status OK
|
||||||
|
test.t2 analyze status Engine-independent statistics collected
|
||||||
|
test.t2 analyze status OK
|
||||||
|
test.t3 analyze status Engine-independent statistics collected
|
||||||
|
test.t3 analyze status OK
|
||||||
|
test.t4 analyze status Engine-independent statistics collected
|
||||||
|
test.t4 analyze status OK
|
||||||
|
SELECT * FROM t2 LEFT JOIN t3 ON c = d;
|
||||||
|
b c d
|
||||||
|
1 2 2
|
||||||
|
2 4 NULL
|
||||||
|
SELECT * FROM (t2 LEFT JOIN t3 ON c = d ) JOIN t4;
|
||||||
|
b c d e
|
||||||
|
1 2 2 1
|
||||||
|
2 4 NULL 1
|
||||||
|
1 2 2 2
|
||||||
|
2 4 NULL 2
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN ( ( t2 LEFT JOIN t3 ON c = d ) JOIN t4 ) ON b = e;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||||
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||||
|
1 SIMPLE t3 hash_index d #hash#d:d 5:5 test.t2.c 2 Using where; Using index; Using join buffer (incremental, BNLH join)
|
||||||
|
1 SIMPLE t4 hash_index PRIMARY #hash#PRIMARY:PRIMARY 4:4 test.t2.b 2 Using index; Using join buffer (incremental, BNLH join)
|
||||||
|
SELECT * FROM t1 LEFT JOIN ( ( t2 LEFT JOIN t3 ON c = d ) JOIN t4 ) ON b = e;
|
||||||
|
a b c d e
|
||||||
|
1 1 2 2 1
|
||||||
|
2 1 2 2 1
|
||||||
|
1 2 4 NULL 2
|
||||||
|
2 2 4 NULL 2
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN ( ( t2 LEFT JOIN t3 ON c = d ) JOIN t4 ) ON b = e
|
||||||
|
WHERE e IS NULL;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 2
|
||||||
|
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||||
|
1 SIMPLE t3 hash_index d #hash#d:d 5:5 test.t2.c 2 Using where; Using index; Using join buffer (incremental, BNLH join)
|
||||||
|
1 SIMPLE t4 hash_index PRIMARY #hash#PRIMARY:PRIMARY 4:4 test.t2.b 2 Using where; Using index; Not exists; Using join buffer (incremental, BNLH join)
|
||||||
|
SELECT * FROM t1 LEFT JOIN ( ( t2 LEFT JOIN t3 ON c = d ) JOIN t4 ) ON b = e
|
||||||
|
WHERE e IS NULL;
|
||||||
|
a b c d e
|
||||||
|
DROP TABLE t1,t2,t3,t4;
|
||||||
|
set join_cache_level=@save_join_cache_level;
|
||||||
|
#
|
||||||
# MDEV-21243: Join buffer: condition is checked in wrong place for range access
|
# MDEV-21243: Join buffer: condition is checked in wrong place for range access
|
||||||
#
|
#
|
||||||
create table t1(a int primary key);
|
create table t1(a int primary key);
|
||||||
@ -6141,6 +6198,7 @@ EXPLAIN
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
# End of 10.3 tests
|
||||||
set @@optimizer_switch=@save_optimizer_switch;
|
set @@optimizer_switch=@save_optimizer_switch;
|
||||||
set global innodb_stats_persistent= @innodb_stats_persistent_save;
|
set global innodb_stats_persistent= @innodb_stats_persistent_save;
|
||||||
set global innodb_stats_persistent_sample_pages=
|
set global innodb_stats_persistent_sample_pages=
|
||||||
|
@ -4070,6 +4070,41 @@ drop table t1, t2;
|
|||||||
set join_buffer_size=@save_join_buffer_size;
|
set join_buffer_size=@save_join_buffer_size;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-21104: BNLH used for multi-join query with embedded outer join
|
||||||
|
--echo # and possible 'not exists' optimization
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
set join_cache_level=4;
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a int) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
|
CREATE TABLE t2 (b int, c int) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (1,2),(2,4);
|
||||||
|
CREATE TABLE t3 (d int, KEY(d)) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t3 VALUES (1),(2);
|
||||||
|
CREATE TABLE t4 (e int primary key) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t4 VALUES (1),(2);
|
||||||
|
ANALYZE TABLE t1,t2,t3,t4;
|
||||||
|
|
||||||
|
SELECT * FROM t2 LEFT JOIN t3 ON c = d;
|
||||||
|
SELECT * FROM (t2 LEFT JOIN t3 ON c = d ) JOIN t4;
|
||||||
|
|
||||||
|
let $q1=
|
||||||
|
SELECT * FROM t1 LEFT JOIN ( ( t2 LEFT JOIN t3 ON c = d ) JOIN t4 ) ON b = e;
|
||||||
|
eval EXPLAIN $q1;
|
||||||
|
eval $q1;
|
||||||
|
|
||||||
|
let $q2=
|
||||||
|
SELECT * FROM t1 LEFT JOIN ( ( t2 LEFT JOIN t3 ON c = d ) JOIN t4 ) ON b = e
|
||||||
|
WHERE e IS NULL;
|
||||||
|
eval EXPLAIN $q2;
|
||||||
|
eval $q2;
|
||||||
|
|
||||||
|
DROP TABLE t1,t2,t3,t4;
|
||||||
|
|
||||||
|
set join_cache_level=@save_join_cache_level;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-21243: Join buffer: condition is checked in wrong place for range access
|
--echo # MDEV-21243: Join buffer: condition is checked in wrong place for range access
|
||||||
--echo #
|
--echo #
|
||||||
@ -4109,6 +4144,7 @@ where
|
|||||||
|
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
|
|
||||||
|
--echo # End of 10.3 tests
|
||||||
# The following command must be the last one in the file
|
# The following command must be the last one in the file
|
||||||
set @@optimizer_switch=@save_optimizer_switch;
|
set @@optimizer_switch=@save_optimizer_switch;
|
||||||
|
|
||||||
|
@ -74,4 +74,12 @@ DROP TRIGGER trigg1;
|
|||||||
DROP FUNCTION testQuestion;
|
DROP FUNCTION testQuestion;
|
||||||
DROP EVENT ev1;
|
DROP EVENT ev1;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
End of 6.0 tests
|
#
|
||||||
|
# End of 5.5 tests
|
||||||
|
#
|
||||||
|
select variable_value < 1024*1024*1024 from information_schema.global_status where variable_name='memory_used';
|
||||||
|
variable_value < 1024*1024*1024
|
||||||
|
1
|
||||||
|
#
|
||||||
|
# End of 10.2 tests
|
||||||
|
#
|
||||||
|
@ -64,5 +64,14 @@ DROP TRIGGER trigg1;
|
|||||||
DROP FUNCTION testQuestion;
|
DROP FUNCTION testQuestion;
|
||||||
DROP EVENT ev1;
|
DROP EVENT ev1;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
--echo End of 6.0 tests
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 5.5 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
select variable_value < 1024*1024*1024 from information_schema.global_status where variable_name='memory_used';
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.2 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
@ -7342,6 +7342,44 @@ WHERE (t2.i, t2.pk) NOT IN ( SELECT t3.i, t3.i FROM t t3, t t4 ) AND t1.c = 'foo
|
|||||||
pk i c pk i c
|
pk i c pk i c
|
||||||
1 10 foo 1 10 foo
|
1 10 foo 1 10 foo
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
|
#
|
||||||
|
# MDEV-25002: Outer reference in ON clause of subselect
|
||||||
|
#
|
||||||
|
create table t1 (
|
||||||
|
pk int primary key,
|
||||||
|
a int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t1 values (1,1), (2,2);
|
||||||
|
create table t2 (
|
||||||
|
pk int primary key,
|
||||||
|
b int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t2 values (1,1), (2,3);
|
||||||
|
create table t3 (a int);
|
||||||
|
insert into t3 values (1),(2);
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1, t2
|
||||||
|
where t2.pk=t3.a and t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1 join t2 on t2.pk=t3.a
|
||||||
|
where t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1,t2 where t2.pk=t3.a and t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1 join t2 on t2.pk=t3.a where t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
drop table t1,t2,t3;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# Start of 10.4 tests
|
# Start of 10.4 tests
|
||||||
|
@ -6169,6 +6169,41 @@ SELECT * FROM t t1 RIGHT JOIN t t2 ON (t2.pk = t1.pk)
|
|||||||
|
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-25002: Outer reference in ON clause of subselect
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create table t1 (
|
||||||
|
pk int primary key,
|
||||||
|
a int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t1 values (1,1), (2,2);
|
||||||
|
|
||||||
|
create table t2 (
|
||||||
|
pk int primary key,
|
||||||
|
b int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t2 values (1,1), (2,3);
|
||||||
|
|
||||||
|
create table t3 (a int);
|
||||||
|
insert into t3 values (1),(2);
|
||||||
|
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1, t2
|
||||||
|
where t2.pk=t3.a and t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1 join t2 on t2.pk=t3.a
|
||||||
|
where t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1,t2 where t2.pk=t3.a and t1.pk=1);
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1 join t2 on t2.pk=t3.a where t1.pk=1);
|
||||||
|
|
||||||
|
drop table t1,t2,t3;
|
||||||
|
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
|
|
||||||
|
|
||||||
|
@ -2694,6 +2694,33 @@ INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4), (5,5);
|
|||||||
SELECT a, b FROM t1 WHERE a IN (SELECT A.a FROM t1 A GROUP BY s.id);
|
SELECT a, b FROM t1 WHERE a IN (SELECT A.a FROM t1 A GROUP BY s.id);
|
||||||
ERROR 42S22: Unknown column 's.id' in 'group statement'
|
ERROR 42S22: Unknown column 's.id' in 'group statement'
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# MDEV-24519: Server crashes in Charset::set_charset upon SELECT
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a VARBINARY(8));
|
||||||
|
INSERT INTO t1 VALUES ('foo'),('bar');
|
||||||
|
CREATE TABLE t2 (b VARBINARY(8));
|
||||||
|
EXPLAIN
|
||||||
|
SELECT a FROM t1 WHERE (a, a) IN (SELECT 'qux', 'qux') AND a = (SELECT MIN(b) FROM t2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE
|
||||||
|
3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL no matching row in const table
|
||||||
|
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
SELECT a FROM t1 WHERE (a, a) IN (SELECT 'qux', 'qux') AND a = (SELECT MIN(b) FROM t2);
|
||||||
|
a
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
|
CREATE TABLE t2 (b VARBINARY(8));
|
||||||
|
EXPLAIN
|
||||||
|
SELECT a FROM t1 WHERE (a, a) IN (SELECT 1, 2) AND a = (SELECT MIN(b) FROM t2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL no matching row in const table
|
||||||
|
2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||||
|
SELECT a FROM t1 WHERE (a, a) IN (SELECT 1, 2) AND a = (SELECT MIN(b) FROM t2);
|
||||||
|
a
|
||||||
|
DROP TABLE t1,t2;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# MDEV-18335: Assertion `!error || error == 137' failed in subselect_rowid_merge_engine::init
|
# MDEV-18335: Assertion `!error || error == 137' failed in subselect_rowid_merge_engine::init
|
||||||
|
@ -2212,6 +2212,30 @@ INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4), (5,5);
|
|||||||
SELECT a, b FROM t1 WHERE a IN (SELECT A.a FROM t1 A GROUP BY s.id);
|
SELECT a, b FROM t1 WHERE a IN (SELECT A.a FROM t1 A GROUP BY s.id);
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-24519: Server crashes in Charset::set_charset upon SELECT
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a VARBINARY(8));
|
||||||
|
INSERT INTO t1 VALUES ('foo'),('bar');
|
||||||
|
CREATE TABLE t2 (b VARBINARY(8));
|
||||||
|
|
||||||
|
EXPLAIN
|
||||||
|
SELECT a FROM t1 WHERE (a, a) IN (SELECT 'qux', 'qux') AND a = (SELECT MIN(b) FROM t2);
|
||||||
|
SELECT a FROM t1 WHERE (a, a) IN (SELECT 'qux', 'qux') AND a = (SELECT MIN(b) FROM t2);
|
||||||
|
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
|
CREATE TABLE t2 (b VARBINARY(8));
|
||||||
|
|
||||||
|
EXPLAIN
|
||||||
|
SELECT a FROM t1 WHERE (a, a) IN (SELECT 1, 2) AND a = (SELECT MIN(b) FROM t2);
|
||||||
|
SELECT a FROM t1 WHERE (a, a) IN (SELECT 1, 2) AND a = (SELECT MIN(b) FROM t2);
|
||||||
|
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -7342,6 +7342,44 @@ WHERE (t2.i, t2.pk) NOT IN ( SELECT t3.i, t3.i FROM t t3, t t4 ) AND t1.c = 'foo
|
|||||||
pk i c pk i c
|
pk i c pk i c
|
||||||
1 10 foo 1 10 foo
|
1 10 foo 1 10 foo
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
|
#
|
||||||
|
# MDEV-25002: Outer reference in ON clause of subselect
|
||||||
|
#
|
||||||
|
create table t1 (
|
||||||
|
pk int primary key,
|
||||||
|
a int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t1 values (1,1), (2,2);
|
||||||
|
create table t2 (
|
||||||
|
pk int primary key,
|
||||||
|
b int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t2 values (1,1), (2,3);
|
||||||
|
create table t3 (a int);
|
||||||
|
insert into t3 values (1),(2);
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1, t2
|
||||||
|
where t2.pk=t3.a and t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1 join t2 on t2.pk=t3.a
|
||||||
|
where t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1,t2 where t2.pk=t3.a and t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1 join t2 on t2.pk=t3.a where t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
drop table t1,t2,t3;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# Start of 10.4 tests
|
# Start of 10.4 tests
|
||||||
|
@ -7335,6 +7335,44 @@ WHERE (t2.i, t2.pk) NOT IN ( SELECT t3.i, t3.i FROM t t3, t t4 ) AND t1.c = 'foo
|
|||||||
pk i c pk i c
|
pk i c pk i c
|
||||||
1 10 foo 1 10 foo
|
1 10 foo 1 10 foo
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
|
#
|
||||||
|
# MDEV-25002: Outer reference in ON clause of subselect
|
||||||
|
#
|
||||||
|
create table t1 (
|
||||||
|
pk int primary key,
|
||||||
|
a int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t1 values (1,1), (2,2);
|
||||||
|
create table t2 (
|
||||||
|
pk int primary key,
|
||||||
|
b int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t2 values (1,1), (2,3);
|
||||||
|
create table t3 (a int);
|
||||||
|
insert into t3 values (1),(2);
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1, t2
|
||||||
|
where t2.pk=t3.a and t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1 join t2 on t2.pk=t3.a
|
||||||
|
where t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1,t2 where t2.pk=t3.a and t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1 join t2 on t2.pk=t3.a where t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
drop table t1,t2,t3;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# Start of 10.4 tests
|
# Start of 10.4 tests
|
||||||
|
@ -7333,6 +7333,44 @@ WHERE (t2.i, t2.pk) NOT IN ( SELECT t3.i, t3.i FROM t t3, t t4 ) AND t1.c = 'foo
|
|||||||
pk i c pk i c
|
pk i c pk i c
|
||||||
1 10 foo 1 10 foo
|
1 10 foo 1 10 foo
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
|
#
|
||||||
|
# MDEV-25002: Outer reference in ON clause of subselect
|
||||||
|
#
|
||||||
|
create table t1 (
|
||||||
|
pk int primary key,
|
||||||
|
a int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t1 values (1,1), (2,2);
|
||||||
|
create table t2 (
|
||||||
|
pk int primary key,
|
||||||
|
b int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t2 values (1,1), (2,3);
|
||||||
|
create table t3 (a int);
|
||||||
|
insert into t3 values (1),(2);
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1, t2
|
||||||
|
where t2.pk=t3.a and t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1 join t2 on t2.pk=t3.a
|
||||||
|
where t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1,t2 where t2.pk=t3.a and t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1 join t2 on t2.pk=t3.a where t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
drop table t1,t2,t3;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# Start of 10.4 tests
|
# Start of 10.4 tests
|
||||||
|
@ -7348,6 +7348,44 @@ WHERE (t2.i, t2.pk) NOT IN ( SELECT t3.i, t3.i FROM t t3, t t4 ) AND t1.c = 'foo
|
|||||||
pk i c pk i c
|
pk i c pk i c
|
||||||
1 10 foo 1 10 foo
|
1 10 foo 1 10 foo
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
|
#
|
||||||
|
# MDEV-25002: Outer reference in ON clause of subselect
|
||||||
|
#
|
||||||
|
create table t1 (
|
||||||
|
pk int primary key,
|
||||||
|
a int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t1 values (1,1), (2,2);
|
||||||
|
create table t2 (
|
||||||
|
pk int primary key,
|
||||||
|
b int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t2 values (1,1), (2,3);
|
||||||
|
create table t3 (a int);
|
||||||
|
insert into t3 values (1),(2);
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1, t2
|
||||||
|
where t2.pk=t3.a and t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1 join t2 on t2.pk=t3.a
|
||||||
|
where t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1,t2 where t2.pk=t3.a and t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1 join t2 on t2.pk=t3.a where t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
drop table t1,t2,t3;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# Start of 10.4 tests
|
# Start of 10.4 tests
|
||||||
|
@ -7333,6 +7333,44 @@ WHERE (t2.i, t2.pk) NOT IN ( SELECT t3.i, t3.i FROM t t3, t t4 ) AND t1.c = 'foo
|
|||||||
pk i c pk i c
|
pk i c pk i c
|
||||||
1 10 foo 1 10 foo
|
1 10 foo 1 10 foo
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
|
#
|
||||||
|
# MDEV-25002: Outer reference in ON clause of subselect
|
||||||
|
#
|
||||||
|
create table t1 (
|
||||||
|
pk int primary key,
|
||||||
|
a int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t1 values (1,1), (2,2);
|
||||||
|
create table t2 (
|
||||||
|
pk int primary key,
|
||||||
|
b int
|
||||||
|
) engine=myisam;
|
||||||
|
insert into t2 values (1,1), (2,3);
|
||||||
|
create table t3 (a int);
|
||||||
|
insert into t3 values (1),(2);
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1, t2
|
||||||
|
where t2.pk=t3.a and t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a,
|
||||||
|
(select count(*) from t1 join t2 on t2.pk=t3.a
|
||||||
|
where t1.pk=1) as sq
|
||||||
|
from t3;
|
||||||
|
a sq
|
||||||
|
1 1
|
||||||
|
2 1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1,t2 where t2.pk=t3.a and t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
select a from t3
|
||||||
|
where a in (select t2.b from t1 join t2 on t2.pk=t3.a where t1.pk=1);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
drop table t1,t2,t3;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# Start of 10.4 tests
|
# Start of 10.4 tests
|
||||||
|
@ -1,97 +1,4 @@
|
|||||||
# List of disabled tests
|
# List of disabled tests
|
||||||
# test name : comment
|
# test name : comment
|
||||||
rpl_redirect : Fails due to bug#49978
|
|
||||||
crash_manycolumns_string : Bug#50495 'Row size too large' for plugin, but works for built-in innodb
|
|
||||||
ix_unique_lob : Bug#52283 Innodb reports extra warnings when SELECT/WHERE is performed using invalid value
|
|
||||||
ix_unique_string_length : Bug#52283 Innodb reports extra warnings when SELECT/WHERE is performed using invalid value
|
|
||||||
rpl_empty_master_crash : Test not applicable in 5.5+
|
|
||||||
rpl_REDIRECT : Test not applicable in 5.5+
|
|
||||||
|
|
||||||
rpl_create_database : Result Difference Due To Change In .inc file
|
crash_manycolumns_string : Bug#50495 'Row size too large' for plugin, but works for built-in innodb [ERROR] InnoDB: Cannot add field `c726` in table `test`.`t1` because after adding it, the row size is 8135 which is greater than maximum allowed size (8126 bytes) for a record on index leaf page
|
||||||
rpl_loaddata_m : Result Difference Due To Change In .inc file
|
|
||||||
rpl_sp_effects : Result Difference Due To Change In .inc file
|
|
||||||
rpl_variables : Result Difference Due To Change In .inc file
|
|
||||||
rpl_loaddata_s : Result Difference Due To Change In .inc file
|
|
||||||
rpl_dual_pos_advance : Result Difference Due To Change In .inc file
|
|
||||||
rpl000011 : Result Difference Due To Change In .inc file
|
|
||||||
rpl000013 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_000015 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_LD_INFILE : Result Difference Due To Change In .inc file
|
|
||||||
rpl_alter : Result Difference Due To Change In .inc file
|
|
||||||
rpl_alter_db : Result Difference Due To Change In .inc file
|
|
||||||
rpl_alter_db : Result Difference Due To Change In .inc file
|
|
||||||
rpl_bit : Result Difference Due To Change In .inc file
|
|
||||||
rpl_bit_npk : Result Difference Due To Change In .inc file
|
|
||||||
rpl_change_master : Result Difference Due To Change In .inc file
|
|
||||||
rpl_do_grant : Result Difference Due To Change In .inc file
|
|
||||||
rpl_drop : Result Difference Due To Change In .inc file
|
|
||||||
rpl_drop_db : Result Difference Due To Change In .inc file
|
|
||||||
rpl_flushlog_loop : Result Difference Due To Change In .inc file
|
|
||||||
rpl_get_lock : Result Difference Due To Change In .inc file
|
|
||||||
rpl_get_lock : Result Difference Due To Change In .inc file
|
|
||||||
rpl_insert : Result Difference Due To Change In .inc file
|
|
||||||
rpl_insert_select : Result Difference Due To Change In .inc file
|
|
||||||
rpl_loaddata2 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_loaddatalocal : Result Difference Due To Change In .inc file
|
|
||||||
rpl_loadfile : Result Difference Due To Change In .inc file
|
|
||||||
rpl_log_pos : Result Difference Due To Change In .inc file
|
|
||||||
rpl_many_optimize : Result Difference Due To Change In .inc file
|
|
||||||
rpl_master_pos_wait : Result Difference Due To Change In .inc file
|
|
||||||
rpl_misc_functions : Result Difference Due To Change In .inc file
|
|
||||||
rpl_ps : Result Difference Due To Change In .inc file
|
|
||||||
rpl_server_id1 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_session_var : Result Difference Due To Change In .inc file
|
|
||||||
rpl_sf : Result Difference Due To Change In .inc file
|
|
||||||
rpl_slave_status : Result Difference Due To Change In .inc file
|
|
||||||
rpl_sp004 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_start_stop_slave : Result Difference Due To Change In .inc file
|
|
||||||
rpl_stm_max_relay_size : Result Difference Due To Change In .inc file
|
|
||||||
rpl_stm_mystery22 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_stm_no_op : Result Difference Due To Change In .inc file
|
|
||||||
rpl_stm_reset_slave : Result Difference Due To Change In .inc file
|
|
||||||
rpl_temp_table : Result Difference Due To Change In .inc file
|
|
||||||
rpl_temporary : Result Difference Due To Change In .inc file
|
|
||||||
rpl_trigger : Result Difference Due To Change In .inc file
|
|
||||||
rpl_trunc_temp : Result Difference Due To Change In .inc file
|
|
||||||
rpl_user_variables : Result Difference Due To Change In .inc file
|
|
||||||
rpl_server_id2 : Result Difference Due To Change In .inc file
|
|
||||||
rpl000010 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_init_slave : Result Difference Due To Change In .inc file
|
|
||||||
rpl_multi_delete2 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_view : Result Difference Due To Change In .inc file
|
|
||||||
rpl_ignore_table_update : Result Difference Due To Change In .inc file
|
|
||||||
rpl_err_ignoredtable : Result Difference Due To Change In .inc file
|
|
||||||
rpl_multi_update4 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_multi_delete : Result Difference Due To Change In .inc file
|
|
||||||
rpl_ignore_grant : Result Difference Due To Change In .inc file
|
|
||||||
rpl_ignore_revoke : Result Difference Due To Change In .inc file
|
|
||||||
rpl_free_items : Result Difference Due To Change In .inc file
|
|
||||||
rpl_replicate_ignore_db : Result Difference Due To Change In .inc file
|
|
||||||
rpl000017 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_skip_error : Result Difference Due To Change In .inc file
|
|
||||||
|
|
||||||
rpl_loaddata_s : Test Present in rpl suite as well . Test Fails due to bin log truncation.
|
|
||||||
rpl_log_pos : Test Present in rpl suite as well . Test Fails due to bin log truncation.
|
|
||||||
rpl_row_NOW : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_USER : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_drop : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_func001 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_max_relay_size : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_reset_slave : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_sp001 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_sp005 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_sp008 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_sp009 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_sp010 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_sp011 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_sp012 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_stop_middle : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_trig001 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_trig002 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_trig003 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_view01 : Result Difference Due To Change In .inc file
|
|
||||||
rpl_switch_stm_row_mixed : Result Difference Due To Change In .inc file
|
|
||||||
rpl_relayspace : Result Difference Due To Change In .inc file
|
|
||||||
rpl_row_inexist_tbl : Result Difference Due To Change In .inc file
|
|
||||||
rpl_sp : Result Difference Due To Change In .inc file
|
|
||||||
rpl_rbr_to_sbr : Result Difference Due To Change In .inc file
|
|
||||||
|
File diff suppressed because one or more lines are too long
@ -7,7 +7,7 @@ t4
|
|||||||
SHOW CREATE TABLE t4;
|
SHOW CREATE TABLE t4;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t4 CREATE TABLE `t4` (
|
t4 CREATE TABLE `t4` (
|
||||||
`c1` tinyblob,
|
`c1` tinyblob DEFAULT NULL,
|
||||||
UNIQUE KEY `i1` (`c1`(100))
|
UNIQUE KEY `i1` (`c1`(100))
|
||||||
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t4;
|
DROP TABLE t4;
|
||||||
@ -21,7 +21,7 @@ t4
|
|||||||
SHOW CREATE TABLE t4;
|
SHOW CREATE TABLE t4;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t4 CREATE TABLE `t4` (
|
t4 CREATE TABLE `t4` (
|
||||||
`c1` blob,
|
`c1` blob DEFAULT NULL,
|
||||||
UNIQUE KEY `i1` (`c1`(100))
|
UNIQUE KEY `i1` (`c1`(100))
|
||||||
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t4;
|
DROP TABLE t4;
|
||||||
@ -35,7 +35,7 @@ t4
|
|||||||
SHOW CREATE TABLE t4;
|
SHOW CREATE TABLE t4;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t4 CREATE TABLE `t4` (
|
t4 CREATE TABLE `t4` (
|
||||||
`c1` mediumblob,
|
`c1` mediumblob DEFAULT NULL,
|
||||||
UNIQUE KEY `i1` (`c1`(100))
|
UNIQUE KEY `i1` (`c1`(100))
|
||||||
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t4;
|
DROP TABLE t4;
|
||||||
@ -49,7 +49,7 @@ t4
|
|||||||
SHOW CREATE TABLE t4;
|
SHOW CREATE TABLE t4;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t4 CREATE TABLE `t4` (
|
t4 CREATE TABLE `t4` (
|
||||||
`c1` longblob,
|
`c1` longblob DEFAULT NULL,
|
||||||
UNIQUE KEY `i1` (`c1`(100))
|
UNIQUE KEY `i1` (`c1`(100))
|
||||||
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t4;
|
DROP TABLE t4;
|
||||||
@ -63,7 +63,7 @@ t4
|
|||||||
SHOW CREATE TABLE t4;
|
SHOW CREATE TABLE t4;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t4 CREATE TABLE `t4` (
|
t4 CREATE TABLE `t4` (
|
||||||
`c1` tinytext,
|
`c1` tinytext DEFAULT NULL,
|
||||||
UNIQUE KEY `i1` (`c1`(100))
|
UNIQUE KEY `i1` (`c1`(100))
|
||||||
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t4;
|
DROP TABLE t4;
|
||||||
@ -77,7 +77,7 @@ t4
|
|||||||
SHOW CREATE TABLE t4;
|
SHOW CREATE TABLE t4;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t4 CREATE TABLE `t4` (
|
t4 CREATE TABLE `t4` (
|
||||||
`c1` text,
|
`c1` text DEFAULT NULL,
|
||||||
UNIQUE KEY `i1` (`c1`(100))
|
UNIQUE KEY `i1` (`c1`(100))
|
||||||
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t4;
|
DROP TABLE t4;
|
||||||
@ -91,7 +91,7 @@ t4
|
|||||||
SHOW CREATE TABLE t4;
|
SHOW CREATE TABLE t4;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t4 CREATE TABLE `t4` (
|
t4 CREATE TABLE `t4` (
|
||||||
`c1` mediumtext,
|
`c1` mediumtext DEFAULT NULL,
|
||||||
UNIQUE KEY `i1` (`c1`(100))
|
UNIQUE KEY `i1` (`c1`(100))
|
||||||
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t4;
|
DROP TABLE t4;
|
||||||
@ -105,7 +105,7 @@ t4
|
|||||||
SHOW CREATE TABLE t4;
|
SHOW CREATE TABLE t4;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t4 CREATE TABLE `t4` (
|
t4 CREATE TABLE `t4` (
|
||||||
`c1` longtext,
|
`c1` longtext DEFAULT NULL,
|
||||||
UNIQUE KEY `i1` (`c1`(100))
|
UNIQUE KEY `i1` (`c1`(100))
|
||||||
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
) ENGINE=ENGINE DEFAULT CHARSET=latin1
|
||||||
DROP TABLE t4;
|
DROP TABLE t4;
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
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;
|
|
||||||
create table t1 (n int);
|
|
||||||
insert into t1 values(1);
|
|
||||||
stop slave;
|
|
||||||
start slave;
|
|
||||||
insert into t1 values(2);
|
|
||||||
select * from t1;
|
|
||||||
n
|
|
||||||
1
|
|
||||||
2
|
|
||||||
drop table t1;
|
|
@ -1,18 +0,0 @@
|
|||||||
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;
|
|
||||||
stop slave;
|
|
||||||
grant replication slave on *.* to replicate@localhost identified by 'aaaaaaaaaaaaaaab';
|
|
||||||
grant replication slave on *.* to replicate@127.0.0.1 identified by 'aaaaaaaaaaaaaaab';
|
|
||||||
start slave;
|
|
||||||
drop table if exists t1;
|
|
||||||
create table t1(n int);
|
|
||||||
insert into t1 values(24);
|
|
||||||
select * from t1;
|
|
||||||
n
|
|
||||||
24
|
|
||||||
drop table t1;
|
|
||||||
delete from mysql.user where user="replicate";
|
|
@ -1,14 +1,14 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1 (n int not null auto_increment primary key);
|
create table t1 (n int not null auto_increment primary key);
|
||||||
insert into t1 values(NULL);
|
insert into t1 values(NULL);
|
||||||
insert into t1 values(2);
|
insert into t1 values(2);
|
||||||
|
connection slave;
|
||||||
select n from t1;
|
select n from t1;
|
||||||
n
|
n
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
18
mysql-test/suite/engines/funcs/r/rpl_000011.result
Normal file
18
mysql-test/suite/engines/funcs/r/rpl_000011.result
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
include/master-slave.inc
|
||||||
|
[connection master]
|
||||||
|
create table t1 (n int);
|
||||||
|
insert into t1 values(1);
|
||||||
|
connection slave;
|
||||||
|
include/stop_slave.inc
|
||||||
|
include/start_slave.inc
|
||||||
|
connection master;
|
||||||
|
insert into t1 values(2);
|
||||||
|
connection slave;
|
||||||
|
select * from t1;
|
||||||
|
n
|
||||||
|
1
|
||||||
|
2
|
||||||
|
connection master;
|
||||||
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
@ -1,17 +1,19 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t2(n int);
|
create table t2(n int);
|
||||||
create temporary table t1 (n int);
|
create temporary table t1 (n int);
|
||||||
insert into t1 values(1),(2),(3);
|
insert into t1 values(1),(2),(3);
|
||||||
insert into t2 select * from t1;
|
insert into t2 select * from t1;
|
||||||
|
connection master1;
|
||||||
create temporary table t1 (n int);
|
create temporary table t1 (n int);
|
||||||
insert into t1 values (4),(5);
|
insert into t1 values (4),(5);
|
||||||
insert into t2 select * from t1 as t10;
|
insert into t2 select * from t1 as t10;
|
||||||
|
disconnect master;
|
||||||
|
connection slave;
|
||||||
|
connection master1;
|
||||||
insert into t2 values(6);
|
insert into t2 values(6);
|
||||||
|
disconnect master1;
|
||||||
|
connection slave;
|
||||||
select * from t2;
|
select * from t2;
|
||||||
n
|
n
|
||||||
1
|
1
|
||||||
@ -23,6 +25,9 @@ n
|
|||||||
show status like 'Slave_open_temp_tables';
|
show status like 'Slave_open_temp_tables';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Slave_open_temp_tables 0
|
Slave_open_temp_tables 0
|
||||||
|
connect master2,localhost,root,,;
|
||||||
|
connection master2;
|
||||||
drop table if exists t1,t2;
|
drop table if exists t1,t2;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1051 Unknown table 't1'
|
Note 1051 Unknown table 'test.t1'
|
||||||
|
include/rpl_end.inc
|
@ -1,14 +1,11 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
reset master;
|
reset master;
|
||||||
show master status;
|
show master status;
|
||||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||||
master-bin.000001 107
|
master-bin.000001 329
|
||||||
stop slave;
|
connection slave;
|
||||||
|
include/stop_slave.inc
|
||||||
reset slave;
|
reset slave;
|
||||||
show slave status;
|
show slave status;
|
||||||
Slave_IO_State #
|
Slave_IO_State #
|
||||||
@ -51,6 +48,19 @@ Last_SQL_Errno 0
|
|||||||
Last_SQL_Error
|
Last_SQL_Error
|
||||||
Replicate_Ignore_Server_Ids
|
Replicate_Ignore_Server_Ids
|
||||||
Master_Server_Id 1
|
Master_Server_Id 1
|
||||||
|
Master_SSL_Crl
|
||||||
|
Master_SSL_Crlpath
|
||||||
|
Using_Gtid No
|
||||||
|
Gtid_IO_Pos
|
||||||
|
Replicate_Do_Domain_Ids
|
||||||
|
Replicate_Ignore_Domain_Ids
|
||||||
|
Parallel_Mode optimistic
|
||||||
|
SQL_Delay 0
|
||||||
|
SQL_Remaining_Delay NULL
|
||||||
|
Slave_SQL_Running_State
|
||||||
|
Slave_DDL_Groups 0
|
||||||
|
Slave_Non_Transactional_Groups 0
|
||||||
|
Slave_Transactional_Groups 0
|
||||||
change master to master_host='127.0.0.1';
|
change master to master_host='127.0.0.1';
|
||||||
show slave status;
|
show slave status;
|
||||||
Slave_IO_State #
|
Slave_IO_State #
|
||||||
@ -93,6 +103,19 @@ Last_SQL_Errno 0
|
|||||||
Last_SQL_Error
|
Last_SQL_Error
|
||||||
Replicate_Ignore_Server_Ids
|
Replicate_Ignore_Server_Ids
|
||||||
Master_Server_Id 1
|
Master_Server_Id 1
|
||||||
|
Master_SSL_Crl
|
||||||
|
Master_SSL_Crlpath
|
||||||
|
Using_Gtid No
|
||||||
|
Gtid_IO_Pos
|
||||||
|
Replicate_Do_Domain_Ids
|
||||||
|
Replicate_Ignore_Domain_Ids
|
||||||
|
Parallel_Mode optimistic
|
||||||
|
SQL_Delay 0
|
||||||
|
SQL_Remaining_Delay NULL
|
||||||
|
Slave_SQL_Running_State
|
||||||
|
Slave_DDL_Groups 0
|
||||||
|
Slave_Non_Transactional_Groups 0
|
||||||
|
Slave_Transactional_Groups 0
|
||||||
change master to master_host='127.0.0.1',master_user='root',
|
change master to master_host='127.0.0.1',master_user='root',
|
||||||
master_password='',master_port=MASTER_PORT;
|
master_password='',master_port=MASTER_PORT;
|
||||||
show slave status;
|
show slave status;
|
||||||
@ -136,7 +159,20 @@ Last_SQL_Errno 0
|
|||||||
Last_SQL_Error
|
Last_SQL_Error
|
||||||
Replicate_Ignore_Server_Ids
|
Replicate_Ignore_Server_Ids
|
||||||
Master_Server_Id 1
|
Master_Server_Id 1
|
||||||
start slave;
|
Master_SSL_Crl
|
||||||
|
Master_SSL_Crlpath
|
||||||
|
Using_Gtid No
|
||||||
|
Gtid_IO_Pos
|
||||||
|
Replicate_Do_Domain_Ids
|
||||||
|
Replicate_Ignore_Domain_Ids
|
||||||
|
Parallel_Mode optimistic
|
||||||
|
SQL_Delay 0
|
||||||
|
SQL_Remaining_Delay NULL
|
||||||
|
Slave_SQL_Running_State
|
||||||
|
Slave_DDL_Groups 0
|
||||||
|
Slave_Non_Transactional_Groups 0
|
||||||
|
Slave_Transactional_Groups 0
|
||||||
|
include/start_slave.inc
|
||||||
show slave status;
|
show slave status;
|
||||||
Slave_IO_State Waiting for master to send event
|
Slave_IO_State Waiting for master to send event
|
||||||
Master_Host 127.0.0.1
|
Master_Host 127.0.0.1
|
||||||
@ -144,9 +180,9 @@ Master_User root
|
|||||||
Master_Port MASTER_PORT
|
Master_Port MASTER_PORT
|
||||||
Connect_Retry 1
|
Connect_Retry 1
|
||||||
Master_Log_File master-bin.000001
|
Master_Log_File master-bin.000001
|
||||||
Read_Master_Log_Pos 107
|
Read_Master_Log_Pos 329
|
||||||
Relay_Log_File slave-relay-bin.000002
|
Relay_Log_File slave-relay-bin.000002
|
||||||
Relay_Log_Pos 254
|
Relay_Log_Pos 629
|
||||||
Relay_Master_Log_File master-bin.000001
|
Relay_Master_Log_File master-bin.000001
|
||||||
Slave_IO_Running Yes
|
Slave_IO_Running Yes
|
||||||
Slave_SQL_Running Yes
|
Slave_SQL_Running Yes
|
||||||
@ -159,8 +195,8 @@ Replicate_Wild_Ignore_Table
|
|||||||
Last_Errno 0
|
Last_Errno 0
|
||||||
Last_Error
|
Last_Error
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos 107
|
Exec_Master_Log_Pos 329
|
||||||
Relay_Log_Space 410
|
Relay_Log_Space 938
|
||||||
Until_Condition None
|
Until_Condition None
|
||||||
Until_Log_File
|
Until_Log_File
|
||||||
Until_Log_Pos 0
|
Until_Log_Pos 0
|
||||||
@ -178,15 +214,34 @@ Last_SQL_Errno 0
|
|||||||
Last_SQL_Error
|
Last_SQL_Error
|
||||||
Replicate_Ignore_Server_Ids
|
Replicate_Ignore_Server_Ids
|
||||||
Master_Server_Id 1
|
Master_Server_Id 1
|
||||||
|
Master_SSL_Crl
|
||||||
|
Master_SSL_Crlpath
|
||||||
|
Using_Gtid No
|
||||||
|
Gtid_IO_Pos
|
||||||
|
Replicate_Do_Domain_Ids
|
||||||
|
Replicate_Ignore_Domain_Ids
|
||||||
|
Parallel_Mode optimistic
|
||||||
|
SQL_Delay 0
|
||||||
|
SQL_Remaining_Delay NULL
|
||||||
|
Slave_SQL_Running_State Slave has read all relay log; waiting for more updates
|
||||||
|
Slave_DDL_Groups 0
|
||||||
|
Slave_Non_Transactional_Groups 0
|
||||||
|
Slave_Transactional_Groups 0
|
||||||
|
connection master;
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1 (n int, PRIMARY KEY(n));
|
create table t1 (n int, PRIMARY KEY(n));
|
||||||
insert into t1 values (10),(45),(90);
|
insert into t1 values (10),(45),(90);
|
||||||
|
connection slave;
|
||||||
|
connection slave;
|
||||||
SELECT * FROM t1 ORDER BY n;
|
SELECT * FROM t1 ORDER BY n;
|
||||||
n 10
|
n 10
|
||||||
n 45
|
n 45
|
||||||
n 90
|
n 90
|
||||||
|
connection master;
|
||||||
SELECT * FROM t1 ORDER BY n;
|
SELECT * FROM t1 ORDER BY n;
|
||||||
n 10
|
n 10
|
||||||
n 45
|
n 45
|
||||||
n 90
|
n 90
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,22 +1,19 @@
|
|||||||
source include/master-slave.inc;
|
include/master-slave.inc
|
||||||
|
[connection master]
|
||||||
connection slave;
|
connection slave;
|
||||||
stop slave;
|
|
||||||
connection master;
|
connection master;
|
||||||
grant replication slave on *.* to replicate@localhost identified by 'aaaaaaaaaaaaaaab';
|
grant replication slave on *.* to replicate@localhost identified by 'aaaaaaaaaaaaaaab';
|
||||||
grant replication slave on *.* to replicate@127.0.0.1 identified by 'aaaaaaaaaaaaaaab';
|
grant replication slave on *.* to replicate@127.0.0.1 identified by 'aaaaaaaaaaaaaaab';
|
||||||
connection slave;
|
connection slave;
|
||||||
start slave;
|
include/start_slave.inc
|
||||||
connection master;
|
connection master;
|
||||||
--disable_warnings
|
|
||||||
drop table if exists t1;
|
|
||||||
--enable_warnings
|
|
||||||
create table t1(n int);
|
create table t1(n int);
|
||||||
insert into t1 values(24);
|
insert into t1 values(24);
|
||||||
sync_slave_with_master;
|
connection slave;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
|
n
|
||||||
|
24
|
||||||
connection master;
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
delete from mysql.user where user="replicate";
|
delete from mysql.user where user="replicate";
|
||||||
sync_slave_with_master;
|
include/rpl_end.inc
|
||||||
|
|
||||||
# End of 4.1 tests
|
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
CREATE TABLE test.t1 (a VARCHAR(255), PRIMARY KEY(a));
|
CREATE TABLE test.t1 (a VARCHAR(255), PRIMARY KEY(a));
|
||||||
LOAD DATA INFILE '../../std_data/words2.dat' INTO TABLE test.t1;
|
LOAD DATA INFILE '../../std_data/words2.dat' INTO TABLE test.t1;
|
||||||
@ -62,6 +59,8 @@ abasements
|
|||||||
abasement
|
abasement
|
||||||
abased
|
abased
|
||||||
abase
|
abase
|
||||||
|
connection slave;
|
||||||
|
connection slave;
|
||||||
SELECT * FROM test.t1 ORDER BY a DESC;
|
SELECT * FROM test.t1 ORDER BY a DESC;
|
||||||
a
|
a
|
||||||
aberration
|
aberration
|
||||||
@ -114,4 +113,7 @@ abasements
|
|||||||
abasement
|
abasement
|
||||||
abased
|
abased
|
||||||
abase
|
abase
|
||||||
|
connection master;
|
||||||
DROP TABLE test.t1;
|
DROP TABLE test.t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
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;
|
|
||||||
SHOW SLAVE STATUS;
|
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running 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 Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed 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 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error
|
|
||||||
SHOW SLAVE HOSTS;
|
|
||||||
Server_id Host Port Rpl_recovery_rank Master_id
|
|
||||||
2 127.0.0.1 SLAVE_PORT 0 1
|
|
||||||
create table t1 ( n int);
|
|
||||||
insert into t1 values (1),(2),(3),(4);
|
|
||||||
insert into t1 values(5);
|
|
||||||
SELECT * FROM t1 ORDER BY n;
|
|
||||||
n
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
SELECT * FROM t1 ORDER BY n;
|
|
||||||
n
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
SELECT * FROM t1 ORDER BY n;
|
|
||||||
n
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
SELECT * FROM t1 ORDER BY n;
|
|
||||||
n
|
|
||||||
1
|
|
||||||
2
|
|
||||||
3
|
|
||||||
4
|
|
||||||
5
|
|
||||||
drop table t1;
|
|
72
mysql-test/suite/engines/funcs/r/rpl_alter,innodb.rdiff
Normal file
72
mysql-test/suite/engines/funcs/r/rpl_alter,innodb.rdiff
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
@@ -29,7 +29,7 @@
|
||||||
|
`a` int(10) unsigned NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
insert into t1 (a) values (1),((1<<32)-1);
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
@@ -42,7 +42,7 @@
|
||||||
|
`a` bigint(20) NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
1 NULL
|
||||||
|
@@ -54,7 +54,7 @@
|
||||||
|
`a` int(10) unsigned NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
1 NULL
|
||||||
|
@@ -66,7 +66,7 @@
|
||||||
|
`a` bigint(20) unsigned NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
1 NULL
|
||||||
|
@@ -83,7 +83,7 @@
|
||||||
|
`a` bigint(20) unsigned NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
connection master;
|
||||||
|
create table t2 (a int unsigned auto_increment primary key, b int);
|
||||||
|
show create table t2;
|
||||||
|
@@ -92,7 +92,7 @@
|
||||||
|
`a` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
alter table t2 modify a bigint;
|
||||||
|
show create table t2;
|
||||||
|
Table Create Table
|
||||||
|
@@ -100,7 +100,7 @@
|
||||||
|
`a` bigint(20) NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
alter table t2 modify a bigint auto_increment;
|
||||||
|
show create table t2;
|
||||||
|
Table Create Table
|
||||||
|
@@ -108,7 +108,7 @@
|
||||||
|
`a` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
drop table t1,t2;
|
||||||
|
#
|
||||||
|
# MDEV-8432: Slave cannot replicate signed integer-type values
|
@ -1,10 +1,5 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
drop database if exists mysqltest;
|
|
||||||
create database mysqltest;
|
create database mysqltest;
|
||||||
create table mysqltest.t1 ( n int);
|
create table mysqltest.t1 ( n int);
|
||||||
alter table mysqltest.t1 add m int;
|
alter table mysqltest.t1 add m int;
|
||||||
@ -12,10 +7,126 @@ insert into mysqltest.t1 values (1,2);
|
|||||||
create table mysqltest.t2 (n int);
|
create table mysqltest.t2 (n int);
|
||||||
insert into mysqltest.t2 values (45);
|
insert into mysqltest.t2 values (45);
|
||||||
rename table mysqltest.t2 to mysqltest.t3, mysqltest.t1 to mysqltest.t2;
|
rename table mysqltest.t2 to mysqltest.t3, mysqltest.t1 to mysqltest.t2;
|
||||||
|
connection slave;
|
||||||
select * from mysqltest.t2;
|
select * from mysqltest.t2;
|
||||||
n m
|
n m
|
||||||
1 2
|
1 2
|
||||||
select * from mysqltest.t3;
|
select * from mysqltest.t3;
|
||||||
n
|
n
|
||||||
45
|
45
|
||||||
|
connection master;
|
||||||
drop database mysqltest;
|
drop database mysqltest;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
use test;
|
||||||
|
#
|
||||||
|
# Test bug where ALTER TABLE MODIFY didn't replicate properly
|
||||||
|
#
|
||||||
|
create table t1 (a int unsigned primary key, b int);
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` int(10) unsigned NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
insert into t1 (a) values (1),((1<<32)-1);
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
1 NULL
|
||||||
|
4294967295 NULL
|
||||||
|
alter table t1 modify a bigint;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` bigint(20) NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
1 NULL
|
||||||
|
4294967295 NULL
|
||||||
|
alter table t1 modify a int unsigned;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` int(10) unsigned NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
1 NULL
|
||||||
|
4294967295 NULL
|
||||||
|
alter table t1 modify a bigint unsigned;
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` bigint(20) unsigned NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
1 NULL
|
||||||
|
4294967295 NULL
|
||||||
|
connection slave;
|
||||||
|
use test;
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
1 NULL
|
||||||
|
4294967295 NULL
|
||||||
|
show create table t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` bigint(20) unsigned NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
connection master;
|
||||||
|
create table t2 (a int unsigned auto_increment primary key, b int);
|
||||||
|
show create table t2;
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
alter table t2 modify a bigint;
|
||||||
|
show create table t2;
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a` bigint(20) NOT NULL,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
alter table t2 modify a bigint auto_increment;
|
||||||
|
show create table t2;
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`a` bigint(20) NOT NULL AUTO_INCREMENT,
|
||||||
|
`b` int(11) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`a`)
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
drop table t1,t2;
|
||||||
|
#
|
||||||
|
# MDEV-8432: Slave cannot replicate signed integer-type values
|
||||||
|
# with high bit set to 1
|
||||||
|
# Test replication when we have int on master and bigint on slave
|
||||||
|
#
|
||||||
|
create table t1 (a int unsigned primary key, b int);
|
||||||
|
connection slave;
|
||||||
|
SET GLOBAL SLAVE_TYPE_CONVERSIONS='ALL_NON_LOSSY';
|
||||||
|
alter table t1 modify a bigint unsigned;
|
||||||
|
connection master;
|
||||||
|
insert into t1 (a) values (1),((1<<32)-1);
|
||||||
|
connection slave;
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
1 NULL
|
||||||
|
4294967295 NULL
|
||||||
|
SET GLOBAL SLAVE_TYPE_CONVERSIONS='';
|
||||||
|
connection master;
|
||||||
|
drop table t1;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,12 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
==== Verify that alter database does not stop replication ====
|
||||||
reset slave;
|
create database temp_db;
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
use temp_db;
|
||||||
start slave;
|
|
||||||
use mysql;
|
|
||||||
alter database collate latin1_bin;
|
alter database collate latin1_bin;
|
||||||
alter database collate latin1_swedish_ci;
|
connection slave;
|
||||||
|
==== Clean up ====
|
||||||
|
connection master;
|
||||||
|
drop database temp_db;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
CREATE TABLE test.t1 (
|
CREATE TABLE test.t1 (
|
||||||
dummyKey INTEGER NOT NULL,
|
dummyKey INTEGER NOT NULL,
|
||||||
@ -95,6 +92,7 @@ hex(bit3)
|
|||||||
15
|
15
|
||||||
24
|
24
|
||||||
35
|
35
|
||||||
|
connection slave;
|
||||||
SELECT oSupp, sSuppD, GSuppDf, VNotSupp, x034 FROM test.t1;
|
SELECT oSupp, sSuppD, GSuppDf, VNotSupp, x034 FROM test.t1;
|
||||||
oSupp sSuppD GSuppDf VNotSupp x034
|
oSupp sSuppD GSuppDf VNotSupp x034
|
||||||
5 5 3 2 1
|
5 5 3 2 1
|
||||||
@ -135,4 +133,7 @@ hex(bit3)
|
|||||||
15
|
15
|
||||||
24
|
24
|
||||||
35
|
35
|
||||||
|
connection master;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
CREATE TABLE test.t1 (
|
CREATE TABLE test.t1 (
|
||||||
dummyKey INTEGER NOT NULL,
|
dummyKey INTEGER NOT NULL,
|
||||||
@ -98,6 +95,7 @@ hex(bit3)
|
|||||||
15
|
15
|
||||||
24
|
24
|
||||||
35
|
35
|
||||||
|
connection slave;
|
||||||
SELECT oSupp, sSuppD, GSuppDf, VNotSupp, x034
|
SELECT oSupp, sSuppD, GSuppDf, VNotSupp, x034
|
||||||
FROM test.t1
|
FROM test.t1
|
||||||
ORDER BY oSupp, sSuppD, GSuppDf, VNotSupp, x034;
|
ORDER BY oSupp, sSuppD, GSuppDf, VNotSupp, x034;
|
||||||
@ -140,6 +138,7 @@ hex(bit3)
|
|||||||
15
|
15
|
||||||
24
|
24
|
||||||
35
|
35
|
||||||
|
connection master;
|
||||||
CREATE TABLE test.t2 (a INT, b BIT(1));
|
CREATE TABLE test.t2 (a INT, b BIT(1));
|
||||||
INSERT INTO test.t2 VALUES (1, b'0');
|
INSERT INTO test.t2 VALUES (1, b'0');
|
||||||
INSERT INTO test.t2 VALUES (1, b'1');
|
INSERT INTO test.t2 VALUES (1, b'1');
|
||||||
@ -156,6 +155,7 @@ SELECT * FROM test.t3 ORDER BY a,b;
|
|||||||
a b
|
a b
|
||||||
1 NULL
|
1 NULL
|
||||||
2 0
|
2 0
|
||||||
|
connection slave;
|
||||||
SELECT a, hex(b) FROM test.t2 ORDER BY a,b;
|
SELECT a, hex(b) FROM test.t2 ORDER BY a,b;
|
||||||
a hex(b)
|
a hex(b)
|
||||||
1 0
|
1 0
|
||||||
@ -164,6 +164,9 @@ SELECT * FROM test.t3 ORDER BY a,b;
|
|||||||
a b
|
a b
|
||||||
1 NULL
|
1 NULL
|
||||||
2 0
|
2 0
|
||||||
|
connection master;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
DROP TABLE IF EXISTS test.t3;
|
DROP TABLE IF EXISTS test.t3;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,26 +1,29 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
call mtr.add_suppression("Slave I/O: The slave I/O thread stops because a fatal error is encountered when it tried to SET @master_binlog_checksum");
|
||||||
reset slave;
|
connection master;
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1(n int);
|
create table t1(n int);
|
||||||
|
connection slave;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
n
|
n
|
||||||
stop slave sql_thread;
|
stop slave sql_thread;
|
||||||
|
connection master;
|
||||||
insert into t1 values(1);
|
insert into t1 values(1);
|
||||||
insert into t1 values(2);
|
insert into t1 values(2);
|
||||||
stop slave;
|
connection slave;
|
||||||
show slave status;
|
include/wait_for_slave_param.inc [Read_Master_Log_Pos]
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running 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 Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed 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 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
include/stop_slave.inc
|
||||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 # # # master-bin.000001 No No 0 0 192 # None 0 No # No 0 0 1
|
|
||||||
change master to master_user='root';
|
change master to master_user='root';
|
||||||
show slave status;
|
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running 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 Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed 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 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
|
||||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 # # # master-bin.000001 No No 0 0 192 # None 0 No # No 0 0 1
|
|
||||||
start slave;
|
start slave;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
n
|
n
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
CHANGE MASTER TO MASTER_USER='root', MASTER_SSL=0, MASTER_SSL_CA='', MASTER_SSL_CERT='',
|
||||||
|
MASTER_SSL_KEY='', MASTER_SSL_CRL='', MASTER_SSL_CRLPATH='';
|
||||||
|
CHANGE MASTER TO MASTER_USER='root', MASTER_PASSWORD='', MASTER_SSL=0;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,13 +1,11 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP DATABASE IF EXISTS mysqltest_prometheus;
|
DROP DATABASE IF EXISTS mysqltest_prometheus;
|
||||||
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
||||||
DROP DATABASE IF EXISTS mysqltest_bob;
|
DROP DATABASE IF EXISTS mysqltest_bob;
|
||||||
|
connection slave;
|
||||||
DROP DATABASE IF EXISTS mysqltest_bob;
|
DROP DATABASE IF EXISTS mysqltest_bob;
|
||||||
|
connection master;
|
||||||
CREATE DATABASE mysqltest_prometheus;
|
CREATE DATABASE mysqltest_prometheus;
|
||||||
CREATE DATABASE mysqltest_sisyfos;
|
CREATE DATABASE mysqltest_sisyfos;
|
||||||
CREATE DATABASE mysqltest_bob;
|
CREATE DATABASE mysqltest_bob;
|
||||||
@ -20,25 +18,19 @@ INSERT INTO t2 VALUES(2);
|
|||||||
ALTER DATABASE mysqltest_sisyfos CHARACTER SET latin1;
|
ALTER DATABASE mysqltest_sisyfos CHARACTER SET latin1;
|
||||||
USE mysqltest_sisyfos;
|
USE mysqltest_sisyfos;
|
||||||
ALTER DATABASE mysqltest_bob CHARACTER SET latin1;
|
ALTER DATABASE mysqltest_bob CHARACTER SET latin1;
|
||||||
SHOW DATABASES;
|
SHOW DATABASES LIKE 'mysql%';
|
||||||
Database
|
Database (mysql%)
|
||||||
information_schema
|
|
||||||
mtr
|
|
||||||
mysql
|
mysql
|
||||||
mysqltest_bob
|
mysqltest_bob
|
||||||
mysqltest_prometheus
|
mysqltest_prometheus
|
||||||
mysqltest_sisyfos
|
mysqltest_sisyfos
|
||||||
performance_schema
|
connection slave;
|
||||||
test
|
SHOW DATABASES LIKE 'mysql%';
|
||||||
SHOW DATABASES;
|
Database (mysql%)
|
||||||
Database
|
|
||||||
information_schema
|
|
||||||
mtr
|
|
||||||
mysql
|
mysql
|
||||||
mysqltest_prometheus
|
mysqltest_prometheus
|
||||||
mysqltest_sisyfos
|
mysqltest_sisyfos
|
||||||
performance_schema
|
connection master;
|
||||||
test
|
|
||||||
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
||||||
USE mysqltest_prometheus;
|
USE mysqltest_prometheus;
|
||||||
CREATE TABLE t1 (a INT);
|
CREATE TABLE t1 (a INT);
|
||||||
@ -46,25 +38,18 @@ INSERT INTO t1 VALUES (1);
|
|||||||
CREATE DATABASE mysqltest_sisyfos;
|
CREATE DATABASE mysqltest_sisyfos;
|
||||||
USE mysqltest_sisyfos;
|
USE mysqltest_sisyfos;
|
||||||
CREATE TABLE t2 (a INT);
|
CREATE TABLE t2 (a INT);
|
||||||
SHOW DATABASES;
|
SHOW DATABASES LIKE 'mysql%';
|
||||||
Database
|
Database (mysql%)
|
||||||
information_schema
|
|
||||||
mtr
|
|
||||||
mysql
|
mysql
|
||||||
mysqltest_bob
|
mysqltest_bob
|
||||||
mysqltest_prometheus
|
mysqltest_prometheus
|
||||||
mysqltest_sisyfos
|
mysqltest_sisyfos
|
||||||
performance_schema
|
connection slave;
|
||||||
test
|
SHOW DATABASES LIKE 'mysql%';
|
||||||
SHOW DATABASES;
|
Database (mysql%)
|
||||||
Database
|
|
||||||
information_schema
|
|
||||||
mtr
|
|
||||||
mysql
|
mysql
|
||||||
mysqltest_prometheus
|
mysqltest_prometheus
|
||||||
mysqltest_sisyfos
|
mysqltest_sisyfos
|
||||||
performance_schema
|
|
||||||
test
|
|
||||||
USE mysqltest_prometheus;
|
USE mysqltest_prometheus;
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_mysqltest_prometheus
|
Tables_in_mysqltest_prometheus
|
||||||
@ -73,6 +58,9 @@ USE mysqltest_sisyfos;
|
|||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_mysqltest_sisyfos
|
Tables_in_mysqltest_sisyfos
|
||||||
t2
|
t2
|
||||||
|
connection master;
|
||||||
DROP DATABASE IF EXISTS mysqltest_prometheus;
|
DROP DATABASE IF EXISTS mysqltest_prometheus;
|
||||||
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
DROP DATABASE IF EXISTS mysqltest_sisyfos;
|
||||||
DROP DATABASE IF EXISTS mysqltest_bob;
|
DROP DATABASE IF EXISTS mysqltest_bob;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,80 +1,320 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
create user rpl_do_grant@localhost;
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
delete from mysql.user where user=_binary'rpl_do_grant';
|
|
||||||
delete from mysql.db where user=_binary'rpl_do_grant';
|
|
||||||
flush privileges;
|
|
||||||
delete from mysql.user where user=_binary'rpl_ignore_grant';
|
|
||||||
delete from mysql.db where user=_binary'rpl_ignore_grant';
|
|
||||||
flush privileges;
|
|
||||||
grant select on *.* to rpl_do_grant@localhost;
|
grant select on *.* to rpl_do_grant@localhost;
|
||||||
grant drop on test.* to rpl_do_grant@localhost;
|
grant drop on test.* to rpl_do_grant@localhost;
|
||||||
|
connection slave;
|
||||||
show grants for rpl_do_grant@localhost;
|
show grants for rpl_do_grant@localhost;
|
||||||
Grants for rpl_do_grant@localhost
|
Grants for rpl_do_grant@localhost
|
||||||
GRANT SELECT ON *.* TO 'rpl_do_grant'@'localhost'
|
GRANT SELECT ON *.* TO `rpl_do_grant`@`localhost`
|
||||||
GRANT DROP ON `test`.* TO 'rpl_do_grant'@'localhost'
|
GRANT DROP ON `test`.* TO `rpl_do_grant`@`localhost`
|
||||||
|
connection master;
|
||||||
set password for rpl_do_grant@localhost=password("does it work?");
|
set password for rpl_do_grant@localhost=password("does it work?");
|
||||||
select password<>_binary'' from mysql.user where user=_binary'rpl_do_grant';
|
connection slave;
|
||||||
password<>_binary''
|
select authentication_string<>'' from mysql.user where user='rpl_do_grant';
|
||||||
|
authentication_string<>''
|
||||||
1
|
1
|
||||||
delete from mysql.user where user=_binary'rpl_do_grant';
|
connection master;
|
||||||
delete from mysql.db where user=_binary'rpl_do_grant';
|
update mysql.global_priv set priv=json_remove(priv, '$.authentication_string') where user='rpl_do_grant';
|
||||||
flush privileges;
|
|
||||||
delete from mysql.user where user=_binary'rpl_do_grant';
|
|
||||||
delete from mysql.db where user=_binary'rpl_do_grant';
|
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
select authentication_string<>'' from mysql.user where user='rpl_do_grant';
|
||||||
|
authentication_string<>''
|
||||||
|
0
|
||||||
|
set sql_mode='ANSI_QUOTES';
|
||||||
|
set password for rpl_do_grant@localhost=password('does it work?');
|
||||||
|
set sql_mode='';
|
||||||
|
connection slave;
|
||||||
|
select authentication_string<>'' from mysql.user where user='rpl_do_grant';
|
||||||
|
authentication_string<>''
|
||||||
|
1
|
||||||
|
connection master;
|
||||||
|
drop user rpl_do_grant@localhost;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
show grants for rpl_do_grant@localhost;
|
show grants for rpl_do_grant@localhost;
|
||||||
ERROR 42000: There is no such grant defined for user 'rpl_do_grant' on host 'localhost'
|
ERROR 42000: There is no such grant defined for user 'rpl_do_grant' on host 'localhost'
|
||||||
|
connection slave;
|
||||||
show grants for rpl_do_grant@localhost;
|
show grants for rpl_do_grant@localhost;
|
||||||
ERROR 42000: There is no such grant defined for user 'rpl_do_grant' on host 'localhost'
|
ERROR 42000: There is no such grant defined for user 'rpl_do_grant' on host 'localhost'
|
||||||
|
connection master;
|
||||||
create user rpl_do_grant@localhost;
|
create user rpl_do_grant@localhost;
|
||||||
show grants for rpl_do_grant@localhost;
|
show grants for rpl_do_grant@localhost;
|
||||||
Grants for rpl_do_grant@localhost
|
Grants for rpl_do_grant@localhost
|
||||||
GRANT USAGE ON *.* TO 'rpl_do_grant'@'localhost'
|
GRANT USAGE ON *.* TO `rpl_do_grant`@`localhost`
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
|
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
|
||||||
|
connection slave;
|
||||||
show grants for rpl_do_grant@localhost;
|
show grants for rpl_do_grant@localhost;
|
||||||
Grants for rpl_do_grant@localhost
|
Grants for rpl_do_grant@localhost
|
||||||
GRANT USAGE ON *.* TO 'rpl_do_grant'@'localhost'
|
GRANT USAGE ON *.* TO `rpl_do_grant`@`localhost`
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
|
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
|
||||||
|
connection master;
|
||||||
rename user rpl_do_grant@localhost to rpl_do_grant2@localhost;
|
rename user rpl_do_grant@localhost to rpl_do_grant2@localhost;
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
Grants for rpl_do_grant2@localhost
|
Grants for rpl_do_grant2@localhost
|
||||||
GRANT USAGE ON *.* TO 'rpl_do_grant2'@'localhost'
|
GRANT USAGE ON *.* TO `rpl_do_grant2`@`localhost`
|
||||||
|
connection slave;
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
Grants for rpl_do_grant2@localhost
|
Grants for rpl_do_grant2@localhost
|
||||||
GRANT USAGE ON *.* TO 'rpl_do_grant2'@'localhost'
|
GRANT USAGE ON *.* TO `rpl_do_grant2`@`localhost`
|
||||||
|
connection master;
|
||||||
grant DELETE,INSERT on mysqltest1.* to rpl_do_grant2@localhost;
|
grant DELETE,INSERT on mysqltest1.* to rpl_do_grant2@localhost;
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
Grants for rpl_do_grant2@localhost
|
Grants for rpl_do_grant2@localhost
|
||||||
GRANT USAGE ON *.* TO 'rpl_do_grant2'@'localhost'
|
GRANT USAGE ON *.* TO `rpl_do_grant2`@`localhost`
|
||||||
GRANT INSERT, DELETE ON `mysqltest1`.* TO 'rpl_do_grant2'@'localhost'
|
GRANT INSERT, DELETE ON `mysqltest1`.* TO `rpl_do_grant2`@`localhost`
|
||||||
|
connection slave;
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
Grants for rpl_do_grant2@localhost
|
Grants for rpl_do_grant2@localhost
|
||||||
GRANT USAGE ON *.* TO 'rpl_do_grant2'@'localhost'
|
GRANT USAGE ON *.* TO `rpl_do_grant2`@`localhost`
|
||||||
GRANT INSERT, DELETE ON `mysqltest1`.* TO 'rpl_do_grant2'@'localhost'
|
GRANT INSERT, DELETE ON `mysqltest1`.* TO `rpl_do_grant2`@`localhost`
|
||||||
|
connection master;
|
||||||
revoke DELETE on mysqltest1.* from rpl_do_grant2@localhost;
|
revoke DELETE on mysqltest1.* from rpl_do_grant2@localhost;
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
Grants for rpl_do_grant2@localhost
|
Grants for rpl_do_grant2@localhost
|
||||||
GRANT USAGE ON *.* TO 'rpl_do_grant2'@'localhost'
|
GRANT USAGE ON *.* TO `rpl_do_grant2`@`localhost`
|
||||||
GRANT INSERT ON `mysqltest1`.* TO 'rpl_do_grant2'@'localhost'
|
GRANT INSERT ON `mysqltest1`.* TO `rpl_do_grant2`@`localhost`
|
||||||
|
connection slave;
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
Grants for rpl_do_grant2@localhost
|
Grants for rpl_do_grant2@localhost
|
||||||
GRANT USAGE ON *.* TO 'rpl_do_grant2'@'localhost'
|
GRANT USAGE ON *.* TO `rpl_do_grant2`@`localhost`
|
||||||
GRANT INSERT ON `mysqltest1`.* TO 'rpl_do_grant2'@'localhost'
|
GRANT INSERT ON `mysqltest1`.* TO `rpl_do_grant2`@`localhost`
|
||||||
|
connection master;
|
||||||
revoke all privileges, grant option from rpl_do_grant2@localhost;
|
revoke all privileges, grant option from rpl_do_grant2@localhost;
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
Grants for rpl_do_grant2@localhost
|
Grants for rpl_do_grant2@localhost
|
||||||
GRANT USAGE ON *.* TO 'rpl_do_grant2'@'localhost'
|
GRANT USAGE ON *.* TO `rpl_do_grant2`@`localhost`
|
||||||
|
connection slave;
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
Grants for rpl_do_grant2@localhost
|
Grants for rpl_do_grant2@localhost
|
||||||
GRANT USAGE ON *.* TO 'rpl_do_grant2'@'localhost'
|
GRANT USAGE ON *.* TO `rpl_do_grant2`@`localhost`
|
||||||
|
connection master;
|
||||||
drop user rpl_do_grant2@localhost;
|
drop user rpl_do_grant2@localhost;
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
|
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
|
||||||
|
connection slave;
|
||||||
show grants for rpl_do_grant2@localhost;
|
show grants for rpl_do_grant2@localhost;
|
||||||
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
|
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
|
||||||
|
connection master;
|
||||||
|
call mtr.add_suppression("Slave: Operation DROP USER failed for 'create_rout_db'@'localhost' error.* 1396");
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
DROP DATABASE IF EXISTS bug42217_db;
|
||||||
|
CREATE DATABASE bug42217_db;
|
||||||
|
GRANT CREATE ROUTINE ON bug42217_db.* TO 'create_rout_db'@'localhost'
|
||||||
|
IDENTIFIED BY 'create_rout_db' WITH GRANT OPTION;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
connect create_rout_db_master, localhost, create_rout_db, create_rout_db, bug42217_db,$MASTER_MYPORT,;
|
||||||
|
connect create_rout_db_slave, localhost, create_rout_db, create_rout_db, bug42217_db, $SLAVE_MYPORT,;
|
||||||
|
connection create_rout_db_master;
|
||||||
|
USE bug42217_db;
|
||||||
|
CREATE FUNCTION upgrade_del_func() RETURNS CHAR(30)
|
||||||
|
BEGIN
|
||||||
|
RETURN "INSIDE upgrade_del_func()";
|
||||||
|
END//
|
||||||
|
connection master;
|
||||||
|
USE bug42217_db;
|
||||||
|
SELECT * FROM mysql.procs_priv;
|
||||||
|
Host Db User Routine_name Routine_type Grantor Proc_priv Timestamp
|
||||||
|
localhost bug42217_db create_rout_db upgrade_del_func FUNCTION create_rout_db@localhost Execute,Alter Routine #
|
||||||
|
SELECT upgrade_del_func();
|
||||||
|
upgrade_del_func()
|
||||||
|
INSIDE upgrade_del_func()
|
||||||
|
connection slave;
|
||||||
|
SELECT * FROM mysql.procs_priv;
|
||||||
|
Host Db User Routine_name Routine_type Grantor Proc_priv Timestamp
|
||||||
|
localhost bug42217_db create_rout_db upgrade_del_func FUNCTION create_rout_db@localhost Execute,Alter Routine #
|
||||||
|
SHOW GRANTS FOR 'create_rout_db'@'localhost';
|
||||||
|
Grants for create_rout_db@localhost
|
||||||
|
GRANT USAGE ON *.* TO `create_rout_db`@`localhost` IDENTIFIED BY PASSWORD '*08792480350CBA057BDE781B9DF183B263934601'
|
||||||
|
GRANT CREATE ROUTINE ON `bug42217_db`.* TO `create_rout_db`@`localhost` WITH GRANT OPTION
|
||||||
|
GRANT EXECUTE, ALTER ROUTINE ON FUNCTION `bug42217_db`.`upgrade_del_func` TO `create_rout_db`@`localhost`
|
||||||
|
USE bug42217_db;
|
||||||
|
SHOW CREATE FUNCTION upgrade_del_func;
|
||||||
|
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||||||
|
upgrade_del_func STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_del_func`() RETURNS char(30) CHARSET latin1
|
||||||
|
BEGIN
|
||||||
|
RETURN "INSIDE upgrade_del_func()";
|
||||||
|
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||||||
|
SELECT upgrade_del_func();
|
||||||
|
upgrade_del_func()
|
||||||
|
INSIDE upgrade_del_func()
|
||||||
|
"Check whether the definer user will be able to execute the replicated routine on slave"
|
||||||
|
connection create_rout_db_slave;
|
||||||
|
USE bug42217_db;
|
||||||
|
SHOW CREATE FUNCTION upgrade_del_func;
|
||||||
|
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||||||
|
upgrade_del_func STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_del_func`() RETURNS char(30) CHARSET latin1
|
||||||
|
BEGIN
|
||||||
|
RETURN "INSIDE upgrade_del_func()";
|
||||||
|
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||||||
|
SELECT upgrade_del_func();
|
||||||
|
upgrade_del_func()
|
||||||
|
INSIDE upgrade_del_func()
|
||||||
|
connection slave;
|
||||||
|
DELETE FROM mysql.procs_priv;
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
|
USE bug42217_db;
|
||||||
|
"Can't execute the replicated routine on slave like before after procs privilege is deleted "
|
||||||
|
SELECT upgrade_del_func();
|
||||||
|
ERROR 42000: execute command denied to user 'create_rout_db'@'localhost' for routine 'bug42217_db.upgrade_del_func'
|
||||||
|
"Test the user who creates a function on master doesn't exist on slave."
|
||||||
|
"Hence SQL thread ACL_GLOBAL privilege jumps in and no mysql.procs_priv is inserted"
|
||||||
|
DROP USER 'create_rout_db'@'localhost';
|
||||||
|
connection create_rout_db_master;
|
||||||
|
CREATE FUNCTION upgrade_alter_func() RETURNS CHAR(30)
|
||||||
|
BEGIN
|
||||||
|
RETURN "INSIDE upgrade_alter_func()";
|
||||||
|
END//
|
||||||
|
connection master;
|
||||||
|
SELECT upgrade_alter_func();
|
||||||
|
upgrade_alter_func()
|
||||||
|
INSIDE upgrade_alter_func()
|
||||||
|
connection slave;
|
||||||
|
SHOW CREATE FUNCTION upgrade_alter_func;
|
||||||
|
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||||||
|
upgrade_alter_func STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_alter_func`() RETURNS char(30) CHARSET latin1
|
||||||
|
BEGIN
|
||||||
|
RETURN "INSIDE upgrade_alter_func()";
|
||||||
|
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||||||
|
"Should no privilege record for upgrade_alter_func in mysql.procs_priv"
|
||||||
|
SELECT * FROM mysql.procs_priv;
|
||||||
|
Host Db User Routine_name Routine_type Grantor Proc_priv Timestamp
|
||||||
|
SELECT upgrade_alter_func();
|
||||||
|
ERROR HY000: The user specified as a definer ('create_rout_db'@'localhost') does not exist
|
||||||
|
disconnect create_rout_db_master;
|
||||||
|
disconnect create_rout_db_slave;
|
||||||
|
connection master;
|
||||||
|
USE bug42217_db;
|
||||||
|
DROP FUNCTION upgrade_del_func;
|
||||||
|
DROP FUNCTION upgrade_alter_func;
|
||||||
|
DROP DATABASE bug42217_db;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
SET SQL_LOG_BIN= 0;
|
||||||
|
DROP USER 'create_rout_db'@'localhost';
|
||||||
|
SET SQL_LOG_BIN= 1;
|
||||||
|
include/rpl_reset.inc
|
||||||
|
USE test;
|
||||||
|
######## BUG#49119 #######
|
||||||
|
### i) test case from the 'how to repeat section'
|
||||||
|
connection master;
|
||||||
|
CREATE TABLE t1(c1 INT);
|
||||||
|
CREATE PROCEDURE p1() SELECT * FROM t1 |
|
||||||
|
REVOKE EXECUTE ON PROCEDURE p1 FROM 'root'@'localhost';
|
||||||
|
ERROR 42000: There is no such grant defined for user 'root' on host 'localhost' on routine 'p1'
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP PROCEDURE p1;
|
||||||
|
connection slave;
|
||||||
|
### ii) Test case in which REVOKE partially succeeds
|
||||||
|
connection master;
|
||||||
|
include/rpl_reset.inc
|
||||||
|
connection master;
|
||||||
|
CREATE TABLE t1(c1 INT);
|
||||||
|
CREATE PROCEDURE p1() SELECT * FROM t1 |
|
||||||
|
CREATE USER 'user49119'@'localhost';
|
||||||
|
GRANT EXECUTE ON PROCEDURE p1 TO 'user49119'@'localhost';
|
||||||
|
##############################################################
|
||||||
|
### Showing grants for both users: root and user49119 (master)
|
||||||
|
SHOW GRANTS FOR 'user49119'@'localhost';
|
||||||
|
Grants for user49119@localhost
|
||||||
|
GRANT USAGE ON *.* TO `user49119`@`localhost`
|
||||||
|
GRANT EXECUTE ON PROCEDURE `test`.`p1` TO `user49119`@`localhost`
|
||||||
|
SHOW GRANTS FOR CURRENT_USER;
|
||||||
|
Grants for root@localhost
|
||||||
|
GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
|
||||||
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
|
##############################################################
|
||||||
|
connection slave;
|
||||||
|
##############################################################
|
||||||
|
### Showing grants for both users: root and user49119 (master)
|
||||||
|
SHOW GRANTS FOR 'user49119'@'localhost';
|
||||||
|
Grants for user49119@localhost
|
||||||
|
GRANT USAGE ON *.* TO `user49119`@`localhost`
|
||||||
|
GRANT EXECUTE ON PROCEDURE `test`.`p1` TO `user49119`@`localhost`
|
||||||
|
SHOW GRANTS FOR CURRENT_USER;
|
||||||
|
Grants for root@localhost
|
||||||
|
GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
|
||||||
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
|
##############################################################
|
||||||
|
connection master;
|
||||||
|
## This statement will make the revoke fail because root has no
|
||||||
|
## execute grant. However, it will still revoke the grant for
|
||||||
|
## user49119.
|
||||||
|
REVOKE EXECUTE ON PROCEDURE p1 FROM 'user49119'@'localhost', 'root'@'localhost';
|
||||||
|
ERROR 42000: There is no such grant defined for user 'root' on host 'localhost' on routine 'p1'
|
||||||
|
##############################################################
|
||||||
|
### Showing grants for both users: root and user49119 (master)
|
||||||
|
### after revoke statement failure
|
||||||
|
SHOW GRANTS FOR 'user49119'@'localhost';
|
||||||
|
Grants for user49119@localhost
|
||||||
|
GRANT USAGE ON *.* TO `user49119`@`localhost`
|
||||||
|
SHOW GRANTS FOR CURRENT_USER;
|
||||||
|
Grants for root@localhost
|
||||||
|
GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
|
||||||
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
|
##############################################################
|
||||||
|
connection slave;
|
||||||
|
#############################################################
|
||||||
|
### Showing grants for both users: root and user49119 (slave)
|
||||||
|
### after revoke statement failure (should match
|
||||||
|
SHOW GRANTS FOR 'user49119'@'localhost';
|
||||||
|
Grants for user49119@localhost
|
||||||
|
GRANT USAGE ON *.* TO `user49119`@`localhost`
|
||||||
|
SHOW GRANTS FOR CURRENT_USER;
|
||||||
|
Grants for root@localhost
|
||||||
|
GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
|
||||||
|
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
|
||||||
|
##############################################################
|
||||||
|
connection master;
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP PROCEDURE p1;
|
||||||
|
DROP USER 'user49119'@'localhost';
|
||||||
|
connection slave;
|
||||||
|
include/rpl_reset.inc
|
||||||
|
connection master;
|
||||||
|
grant all on *.* to foo@"1.2.3.4";
|
||||||
|
revoke all privileges, grant option from "foo";
|
||||||
|
ERROR HY000: Can't revoke all privileges for one or more of the requested users
|
||||||
|
include/show_binlog_events.inc
|
||||||
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `test`; grant all on *.* to foo@"1.2.3.4"
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `test`; revoke all privileges, grant option from "foo"
|
||||||
|
connection slave;
|
||||||
|
include/check_slave_no_error.inc
|
||||||
|
connection master;
|
||||||
|
DROP USER foo@"1.2.3.4";
|
||||||
|
connection slave;
|
||||||
|
|
||||||
|
# Bug#27606 GRANT statement should be replicated with DEFINER information
|
||||||
|
include/rpl_reset.inc
|
||||||
|
connection master;
|
||||||
|
GRANT SELECT, INSERT ON mysql.user TO user_bug27606@localhost;
|
||||||
|
SELECT Grantor FROM mysql.tables_priv WHERE User='user_bug27606';
|
||||||
|
Grantor
|
||||||
|
root@localhost
|
||||||
|
connection slave;
|
||||||
|
SELECT Grantor FROM mysql.tables_priv WHERE User='user_bug27606';
|
||||||
|
Grantor
|
||||||
|
root@localhost
|
||||||
|
connection master;
|
||||||
|
REVOKE SELECT ON mysql.user FROM user_bug27606@localhost;
|
||||||
|
SELECT Grantor FROM mysql.tables_priv WHERE User='user_bug27606';
|
||||||
|
Grantor
|
||||||
|
root@localhost
|
||||||
|
connection slave;
|
||||||
|
SELECT Grantor FROM mysql.tables_priv WHERE User='user_bug27606';
|
||||||
|
Grantor
|
||||||
|
root@localhost
|
||||||
|
connection master;
|
||||||
|
DROP USER user_bug27606@localhost;
|
||||||
|
select priv into @root_priv from mysql.global_priv where user='root' and host='127.0.0.1';
|
||||||
|
update mysql.global_priv set priv=@root_priv where user='root' and host='localhost';
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
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;
|
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
ERROR 42S02: Unknown table 't2'
|
ERROR 42S02: Unknown table 'test.t2'
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,29 +1,30 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
drop database if exists mysqltest1;
|
drop database if exists mysqltest1;
|
||||||
create database mysqltest1;
|
create database mysqltest1;
|
||||||
create table mysqltest1.t1 (n int);
|
create table mysqltest1.t1 (n int);
|
||||||
insert into mysqltest1.t1 values (1);
|
insert into mysqltest1.t1 values (1);
|
||||||
select * from mysqltest1.t1 into outfile 'mysqltest1/f1.txt';
|
select * from mysqltest1.t1 into outfile 'mysqltest1/f1.txt';
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
|
||||||
create table mysqltest1.t2 (n int);
|
create table mysqltest1.t2 (n int);
|
||||||
create table mysqltest1.t3 (n int);
|
create table mysqltest1.t3 (n int);
|
||||||
drop database mysqltest1;
|
drop database mysqltest1;
|
||||||
ERROR HY000: Error dropping database (can't rmdir './mysqltest1/', errno: 17)
|
ERROR HY000: Error dropping database (can't rmdir './mysqltest1', errno: 39 "Directory not empty")
|
||||||
use mysqltest1;
|
use mysqltest1;
|
||||||
show tables;
|
show tables;
|
||||||
Tables_in_mysqltest1
|
Tables_in_mysqltest1
|
||||||
drop database mysqltest1;
|
drop database mysqltest1;
|
||||||
ERROR HY000: Error dropping database (can't rmdir './mysqltest1/', errno: 17)
|
ERROR HY000: Error dropping database (can't rmdir './mysqltest1', errno: 39 "Directory not empty")
|
||||||
use mysqltest1;
|
use mysqltest1;
|
||||||
show tables;
|
show tables;
|
||||||
Tables_in_mysqltest1
|
Tables_in_mysqltest1
|
||||||
use test;
|
use test;
|
||||||
create table t1 (n int);
|
create table t1 (n int);
|
||||||
insert into t1 values (1234);
|
insert into t1 values (1234);
|
||||||
|
connection slave;
|
||||||
|
connection slave;
|
||||||
use mysqltest1;
|
use mysqltest1;
|
||||||
show tables;
|
show tables;
|
||||||
Tables_in_mysqltest1
|
Tables_in_mysqltest1
|
||||||
@ -31,9 +32,9 @@ use test;
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
n
|
n
|
||||||
1234
|
1234
|
||||||
drop table t1;
|
connection master;
|
||||||
stop slave;
|
|
||||||
drop database mysqltest1;
|
|
||||||
drop database mysqltest1;
|
|
||||||
use test;
|
use test;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
drop database mysqltest1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,22 +1,28 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection slave;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
reset master;
|
reset master;
|
||||||
|
connection master;
|
||||||
change master to master_host="127.0.0.1",master_port=SLAVE_PORT,master_user="root";
|
change master to master_host="127.0.0.1",master_port=SLAVE_PORT,master_user="root";
|
||||||
start slave;
|
include/start_slave.inc
|
||||||
|
connection slave;
|
||||||
create table t1 (n int);
|
create table t1 (n int);
|
||||||
|
connection master;
|
||||||
|
connection master;
|
||||||
create table t4 (n int);
|
create table t4 (n int);
|
||||||
create table t5 (n int);
|
create table t5 (n int);
|
||||||
create table t6 (n int);
|
create table t6 (n int);
|
||||||
|
connection slave;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
show tables;
|
show tables;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t1
|
t1
|
||||||
t4
|
t4
|
||||||
t5
|
t5
|
||||||
t6
|
t6
|
||||||
stop slave;
|
include/stop_slave.inc
|
||||||
reset slave;
|
reset slave;
|
||||||
drop table t1,t4,t5,t6;
|
drop table t1,t4,t5,t6;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
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;
|
|
||||||
show slave status;
|
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running 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 Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed 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 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error
|
|
||||||
load table t1 from master;
|
|
||||||
ERROR 08S01: Error connecting to master: Master is not configured
|
|
||||||
load table t1 from master;
|
|
||||||
ERROR HY000: Error from master: 'Table 'test.t1' doesn't exist'
|
|
@ -1,14 +1,12 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1 (a int primary key);
|
create table t1 (a int primary key);
|
||||||
create table t4 (a int primary key);
|
create table t4 (a int primary key);
|
||||||
insert into t1 values (1),(1);
|
insert into t1 values (1),(1);
|
||||||
Got one of the listed errors
|
Got one of the listed errors
|
||||||
insert into t4 values (1),(2);
|
insert into t4 values (1),(2);
|
||||||
|
connection slave;
|
||||||
show tables like 't1';
|
show tables like 't1';
|
||||||
Tables_in_test (t1)
|
Tables_in_test (t1)
|
||||||
show tables like 't4';
|
show tables like 't4';
|
||||||
@ -18,25 +16,36 @@ SELECT * FROM test.t4 ORDER BY a;
|
|||||||
a
|
a
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
connection master1;
|
||||||
select get_lock('crash_lock%20C', 10);
|
select get_lock('crash_lock%20C', 10);
|
||||||
get_lock('crash_lock%20C', 10)
|
get_lock('crash_lock%20C', 10)
|
||||||
1
|
1
|
||||||
|
connection master;
|
||||||
create table t2 (a int primary key);
|
create table t2 (a int primary key);
|
||||||
insert into t2 values(1);
|
insert into t2 values(1);
|
||||||
create table t3 (id int);
|
create table t3 (id int);
|
||||||
insert into t3 values(connection_id());
|
insert into t3 values(connection_id());
|
||||||
update t2 set a = a + 1 + get_lock('crash_lock%20C', 10);
|
update t2 set a = a + 1 + get_lock('crash_lock%20C', 10);
|
||||||
|
connection master1;
|
||||||
select (@id := id) - id from t3;
|
select (@id := id) - id from t3;
|
||||||
(@id := id) - id
|
(@id := id) - id
|
||||||
0
|
0
|
||||||
kill @id;
|
kill @id;
|
||||||
drop table t2,t3;
|
drop table t2,t3;
|
||||||
insert into t4 values (3),(4);
|
insert into t4 values (3),(4);
|
||||||
|
connection master;
|
||||||
|
connection master1;
|
||||||
|
connection slave;
|
||||||
SELECT * FROM test.t4 ORDER BY a;
|
SELECT * FROM test.t4 ORDER BY a;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
3
|
3
|
||||||
4
|
4
|
||||||
|
connection master1;
|
||||||
DROP TABLE test.t4;
|
DROP TABLE test.t4;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,21 +1,14 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection slave;
|
||||||
reset slave;
|
include/stop_slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
stop slave;
|
|
||||||
change master to master_host='127.0.0.1',master_user='root',
|
change master to master_host='127.0.0.1',master_user='root',
|
||||||
master_password='',master_port=MASTER_PORT;
|
master_password='',master_port=MASTER_PORT;
|
||||||
start slave;
|
include/start_slave.inc
|
||||||
stop slave;
|
connection master;
|
||||||
change master to master_host='127.0.0.1',master_user='root',
|
change master to master_host='127.0.0.1',master_user='root',
|
||||||
master_password='',master_port=SLAVE_PORT;
|
master_password='',master_port=SLAVE_PORT;
|
||||||
start slave;
|
include/start_slave.inc
|
||||||
|
|
||||||
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;
|
SHOW SLAVE STATUS;
|
||||||
Slave_IO_State #
|
Slave_IO_State #
|
||||||
@ -24,7 +17,7 @@ Master_User root
|
|||||||
Master_Port SLAVE_PORT
|
Master_Port SLAVE_PORT
|
||||||
Connect_Retry 60
|
Connect_Retry 60
|
||||||
Master_Log_File slave-bin.000001
|
Master_Log_File slave-bin.000001
|
||||||
Read_Master_Log_Pos 107
|
Read_Master_Log_Pos 328
|
||||||
Relay_Log_File #
|
Relay_Log_File #
|
||||||
Relay_Log_Pos #
|
Relay_Log_Pos #
|
||||||
Relay_Master_Log_File slave-bin.000001
|
Relay_Master_Log_File slave-bin.000001
|
||||||
@ -39,7 +32,7 @@ Replicate_Wild_Ignore_Table
|
|||||||
Last_Errno 0
|
Last_Errno 0
|
||||||
Last_Error
|
Last_Error
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos 107
|
Exec_Master_Log_Pos 328
|
||||||
Relay_Log_Space #
|
Relay_Log_Space #
|
||||||
Until_Condition None
|
Until_Condition None
|
||||||
Until_Log_File
|
Until_Log_File
|
||||||
@ -58,4 +51,18 @@ Last_SQL_Errno 0
|
|||||||
Last_SQL_Error
|
Last_SQL_Error
|
||||||
Replicate_Ignore_Server_Ids
|
Replicate_Ignore_Server_Ids
|
||||||
Master_Server_Id 2
|
Master_Server_Id 2
|
||||||
STOP SLAVE;
|
Master_SSL_Crl
|
||||||
|
Master_SSL_Crlpath
|
||||||
|
Using_Gtid No
|
||||||
|
Gtid_IO_Pos
|
||||||
|
Replicate_Do_Domain_Ids
|
||||||
|
Replicate_Ignore_Domain_Ids
|
||||||
|
Parallel_Mode optimistic
|
||||||
|
SQL_Delay 0
|
||||||
|
SQL_Remaining_Delay NULL
|
||||||
|
Slave_SQL_Running_State Slave has read all relay log; waiting for more updates
|
||||||
|
Slave_DDL_Groups 0
|
||||||
|
Slave_Non_Transactional_Groups 0
|
||||||
|
Slave_Transactional_Groups 0
|
||||||
|
stop slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
create table t2 (a int);
|
create table t2 (a int);
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1(n int);
|
create table t1(n int);
|
||||||
insert into t1 values(get_lock("lock",2));
|
insert into t1 values(get_lock("lock",2));
|
||||||
|
disconnect master;
|
||||||
|
connection master1;
|
||||||
select get_lock("lock",2);
|
select get_lock("lock",2);
|
||||||
get_lock("lock",2)
|
get_lock("lock",2)
|
||||||
1
|
1
|
||||||
select release_lock("lock");
|
select release_lock("lock");
|
||||||
release_lock("lock")
|
release_lock("lock")
|
||||||
1
|
1
|
||||||
|
connection slave;
|
||||||
select get_lock("lock",3);
|
select get_lock("lock",3);
|
||||||
get_lock("lock",3)
|
get_lock("lock",3)
|
||||||
1
|
1
|
||||||
@ -32,4 +32,7 @@ is_free_lock("lock2")
|
|||||||
select is_free_lock(NULL);
|
select is_free_lock(NULL);
|
||||||
is_free_lock(NULL)
|
is_free_lock(NULL)
|
||||||
NULL
|
NULL
|
||||||
|
connection master1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,21 +1,23 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
set sql_mode="";
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
delete from mysql.user where user=_binary'rpl_ignore_grant';
|
delete from mysql.user where user=_binary'rpl_ignore_grant';
|
||||||
delete from mysql.db where user=_binary'rpl_ignore_grant';
|
delete from mysql.db where user=_binary'rpl_ignore_grant';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
connection slave;
|
||||||
|
set sql_mode="";
|
||||||
delete from mysql.user where user=_binary'rpl_ignore_grant';
|
delete from mysql.user where user=_binary'rpl_ignore_grant';
|
||||||
delete from mysql.db where user=_binary'rpl_ignore_grant';
|
delete from mysql.db where user=_binary'rpl_ignore_grant';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
connection master;
|
||||||
grant select on *.* to rpl_ignore_grant@localhost;
|
grant select on *.* to rpl_ignore_grant@localhost;
|
||||||
grant drop on test.* to rpl_ignore_grant@localhost;
|
grant drop on test.* to rpl_ignore_grant@localhost;
|
||||||
show grants for rpl_ignore_grant@localhost;
|
show grants for rpl_ignore_grant@localhost;
|
||||||
Grants for rpl_ignore_grant@localhost
|
Grants for rpl_ignore_grant@localhost
|
||||||
GRANT SELECT ON *.* TO 'rpl_ignore_grant'@'localhost'
|
GRANT SELECT ON *.* TO `rpl_ignore_grant`@`localhost`
|
||||||
GRANT DROP ON `test`.* TO 'rpl_ignore_grant'@'localhost'
|
GRANT DROP ON `test`.* TO `rpl_ignore_grant`@`localhost`
|
||||||
|
connection slave;
|
||||||
show grants for rpl_ignore_grant@localhost;
|
show grants for rpl_ignore_grant@localhost;
|
||||||
ERROR 42000: There is no such grant defined for user 'rpl_ignore_grant' on host 'localhost'
|
ERROR 42000: There is no such grant defined for user 'rpl_ignore_grant' on host 'localhost'
|
||||||
select count(*) from mysql.user where user=_binary'rpl_ignore_grant';
|
select count(*) from mysql.user where user=_binary'rpl_ignore_grant';
|
||||||
@ -25,13 +27,19 @@ select count(*) from mysql.db where user=_binary'rpl_ignore_grant';
|
|||||||
count(*)
|
count(*)
|
||||||
0
|
0
|
||||||
grant select on *.* to rpl_ignore_grant@localhost;
|
grant select on *.* to rpl_ignore_grant@localhost;
|
||||||
|
connection master;
|
||||||
set password for rpl_ignore_grant@localhost=password("does it work?");
|
set password for rpl_ignore_grant@localhost=password("does it work?");
|
||||||
|
connection slave;
|
||||||
select password<>_binary'' from mysql.user where user=_binary'rpl_ignore_grant';
|
select password<>_binary'' from mysql.user where user=_binary'rpl_ignore_grant';
|
||||||
password<>_binary''
|
password<>_binary''
|
||||||
0
|
0
|
||||||
|
connection master;
|
||||||
delete from mysql.user where user=_binary'rpl_ignore_grant';
|
delete from mysql.user where user=_binary'rpl_ignore_grant';
|
||||||
delete from mysql.db where user=_binary'rpl_ignore_grant';
|
delete from mysql.db where user=_binary'rpl_ignore_grant';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
connection slave;
|
||||||
delete from mysql.user where user=_binary'rpl_ignore_grant';
|
delete from mysql.user where user=_binary'rpl_ignore_grant';
|
||||||
delete from mysql.db where user=_binary'rpl_ignore_grant';
|
delete from mysql.db where user=_binary'rpl_ignore_grant';
|
||||||
flush privileges;
|
flush privileges;
|
||||||
|
connection master;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,30 +1,34 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
|
grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
|
||||||
revoke select on *.* from 'user_foo'@'%';
|
revoke select on *.* from 'user_foo'@'%';
|
||||||
select select_priv from mysql.user where user='user_foo' /* master:must be N */;
|
select select_priv from mysql.user where user='user_foo' /* master:must be N */;
|
||||||
select_priv
|
Select_priv
|
||||||
N
|
N
|
||||||
|
connection slave;
|
||||||
grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
|
grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
|
||||||
revoke select on *.* from 'user_foo'@'%';
|
revoke select on *.* from 'user_foo'@'%';
|
||||||
select select_priv from mysql.user where user='user_foo' /* slave:must be N */;
|
select select_priv from mysql.user where user='user_foo' /* slave:must be N */;
|
||||||
select_priv
|
Select_priv
|
||||||
N
|
N
|
||||||
grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
|
grant select on *.* to 'user_foo'@'%' identified by 'user_foopass';
|
||||||
select select_priv from mysql.user where user='user_foo' /* slave:must be Y */;
|
select select_priv from mysql.user where user='user_foo' /* slave:must be Y */;
|
||||||
select_priv
|
Select_priv
|
||||||
Y
|
Y
|
||||||
|
connection master;
|
||||||
revoke select on *.* from 'user_foo';
|
revoke select on *.* from 'user_foo';
|
||||||
select select_priv from mysql.user where user='user_foo' /* master:must be N */;
|
select select_priv from mysql.user where user='user_foo' /* master:must be N */;
|
||||||
select_priv
|
Select_priv
|
||||||
N
|
N
|
||||||
|
connection slave;
|
||||||
select select_priv from mysql.user where user='user_foo' /* slave:must get Y */;
|
select select_priv from mysql.user where user='user_foo' /* slave:must get Y */;
|
||||||
select_priv
|
Select_priv
|
||||||
Y
|
Y
|
||||||
|
connection slave;
|
||||||
revoke select on *.* FROM 'user_foo';
|
revoke select on *.* FROM 'user_foo';
|
||||||
|
connection master;
|
||||||
delete from mysql.user where user="user_foo";
|
delete from mysql.user where user="user_foo";
|
||||||
|
connection slave;
|
||||||
delete from mysql.user where user="user_foo";
|
delete from mysql.user where user="user_foo";
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection slave;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
use test;
|
use test;
|
||||||
drop table if exists mysqltest_foo;
|
drop table if exists mysqltest_foo;
|
||||||
drop table if exists mysqltest_bar;
|
drop table if exists mysqltest_bar;
|
||||||
create table mysqltest_foo (n int);
|
create table mysqltest_foo (n int);
|
||||||
insert into mysqltest_foo values(4);
|
insert into mysqltest_foo values(4);
|
||||||
|
connection master;
|
||||||
use test;
|
use test;
|
||||||
create table mysqltest_foo (n int);
|
create table mysqltest_foo (n int);
|
||||||
insert into mysqltest_foo values(5);
|
insert into mysqltest_foo values(5);
|
||||||
@ -16,8 +14,12 @@ create table mysqltest_bar (m int);
|
|||||||
insert into mysqltest_bar values(15);
|
insert into mysqltest_bar values(15);
|
||||||
create table t1 (k int);
|
create table t1 (k int);
|
||||||
insert into t1 values(55);
|
insert into t1 values(55);
|
||||||
|
connection slave;
|
||||||
select mysqltest_foo.n,mysqltest_bar.m,t1.k from mysqltest_foo,mysqltest_bar,t1;
|
select mysqltest_foo.n,mysqltest_bar.m,t1.k from mysqltest_foo,mysqltest_bar,t1;
|
||||||
n m k
|
n m k
|
||||||
4 15 55
|
4 15 55
|
||||||
|
connection master;
|
||||||
drop table mysqltest_foo,mysqltest_bar,t1;
|
drop table mysqltest_foo,mysqltest_bar,t1;
|
||||||
|
connection slave;
|
||||||
drop table mysqltest_foo,mysqltest_bar,t1;
|
drop table mysqltest_foo,mysqltest_bar,t1;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
set global max_connections=151;
|
||||||
reset slave;
|
connection slave;
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
include/stop_slave.inc
|
||||||
start slave;
|
include/start_slave.inc
|
||||||
|
connection master;
|
||||||
|
connection slave;
|
||||||
show variables like 'init_slave';
|
show variables like 'init_slave';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
init_slave set global max_connections=500
|
init_slave set global max_connections=500
|
||||||
@ -11,17 +13,21 @@ show variables like 'max_connections';
|
|||||||
Variable_name Value
|
Variable_name Value
|
||||||
max_connections 500
|
max_connections 500
|
||||||
reset master;
|
reset master;
|
||||||
|
connection master;
|
||||||
show variables like 'init_slave';
|
show variables like 'init_slave';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
init_slave
|
init_slave
|
||||||
show variables like 'max_connections';
|
show variables like 'max_connections';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
max_connections 151
|
max_connections 151
|
||||||
|
connection slave;
|
||||||
set @my_global_init_connect= @@global.init_connect;
|
set @my_global_init_connect= @@global.init_connect;
|
||||||
set global init_connect="set @c=1";
|
set global init_connect="set @c=1";
|
||||||
show variables like 'init_connect';
|
show variables like 'init_connect';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
init_connect set @c=1
|
init_connect set @c=1
|
||||||
stop slave;
|
connection master;
|
||||||
|
connection slave;
|
||||||
set global init_connect= @my_global_init_connect;
|
set global init_connect= @my_global_init_connect;
|
||||||
set global max_connections= default;
|
set global max_connections= default;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,23 +1,25 @@
|
|||||||
#
|
#
|
||||||
# Bug#20821: INSERT DELAYED fails to write some rows to binlog
|
# Bug#20821: INSERT DELAYED fails to write some rows to binlog
|
||||||
#
|
#
|
||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
CREATE SCHEMA IF NOT EXISTS mysqlslap;
|
CREATE SCHEMA IF NOT EXISTS mysqlslap;
|
||||||
USE mysqlslap;
|
USE mysqlslap;
|
||||||
CREATE TABLE t1 (id INT, name VARCHAR(64));
|
CREATE TABLE t1 (id INT, name VARCHAR(64)) ENGINE=MyISAM;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
SELECT COUNT(*) FROM mysqlslap.t1;
|
SELECT COUNT(*) FROM mysqlslap.t1;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
5000
|
5000
|
||||||
|
connection slave;
|
||||||
SELECT COUNT(*) FROM mysqlslap.t1;
|
SELECT COUNT(*) FROM mysqlslap.t1;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
5000
|
5000
|
||||||
#
|
#
|
||||||
# Cleanup
|
# Cleanup
|
||||||
#
|
#
|
||||||
|
connection master;
|
||||||
USE test;
|
USE test;
|
||||||
DROP SCHEMA mysqlslap;
|
DROP SCHEMA mysqlslap;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,17 +1,21 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1 (n int not null primary key);
|
create table t1 (n int not null primary key);
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
create table t2 (n int);
|
create table t2 (n int);
|
||||||
insert into t2 values (1);
|
insert into t2 values (1);
|
||||||
insert ignore into t1 select * from t2;
|
insert ignore into t1 select * from t2;
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1' for key 'PRIMARY'
|
||||||
insert into t1 values (2);
|
insert into t1 values (2);
|
||||||
|
connection slave;
|
||||||
|
connection slave;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
n
|
n
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
connection master;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
CREATE TABLE t1 (word CHAR(20) NOT NULL);
|
CREATE TABLE t1 (word CHAR(20) NOT NULL);
|
||||||
LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1;
|
LOAD DATA INFILE '../../std_data/words.dat' INTO TABLE t1;
|
||||||
SELECT * FROM t1 ORDER BY word;
|
SELECT * FROM t1 ORDER BY word;
|
||||||
@ -78,6 +74,7 @@ Aberdeen
|
|||||||
Abernathy
|
Abernathy
|
||||||
aberrant
|
aberrant
|
||||||
aberration
|
aberration
|
||||||
|
connection slave;
|
||||||
SELECT * FROM t1 ORDER BY word;
|
SELECT * FROM t1 ORDER BY word;
|
||||||
word
|
word
|
||||||
Aarhus
|
Aarhus
|
||||||
@ -150,4 +147,7 @@ Aberdeen
|
|||||||
Abernathy
|
Abernathy
|
||||||
aberrant
|
aberrant
|
||||||
aberration
|
aberration
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
drop database if exists mysqltest;
|
drop database if exists mysqltest;
|
||||||
|
connection master;
|
||||||
USE test;
|
USE test;
|
||||||
CREATE TABLE t1(a INT, b INT, UNIQUE(b));
|
CREATE TABLE t1(a INT, b INT, UNIQUE(b));
|
||||||
LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE test.t1;
|
LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE test.t1;
|
||||||
@ -18,6 +15,7 @@ LOAD DATA INFILE '../../std_data/rpl_loaddata.dat' INTO TABLE mysqltest.t1;
|
|||||||
SELECT COUNT(*) FROM mysqltest.t1;
|
SELECT COUNT(*) FROM mysqltest.t1;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
2
|
2
|
||||||
|
connection slave;
|
||||||
SHOW DATABASES;
|
SHOW DATABASES;
|
||||||
Database
|
Database
|
||||||
information_schema
|
information_schema
|
||||||
@ -36,5 +34,8 @@ t1
|
|||||||
SELECT COUNT(*) FROM mysqltest.t1;
|
SELECT COUNT(*) FROM mysqltest.t1;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
2
|
2
|
||||||
|
connection master;
|
||||||
DROP DATABASE mysqltest;
|
DROP DATABASE mysqltest;
|
||||||
DROP TABLE test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection slave;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
reset master;
|
reset master;
|
||||||
|
connection master;
|
||||||
create table test.t1(a int, b int, unique(b));
|
create table test.t1(a int, b int, unique(b));
|
||||||
load data infile '../../std_data/rpl_loaddata.dat' into table test.t1;
|
load data infile '../../std_data/rpl_loaddata.dat' into table test.t1;
|
||||||
|
connection slave;
|
||||||
select count(*) from test.t1;
|
select count(*) from test.t1;
|
||||||
count(*)
|
count(*)
|
||||||
2
|
2
|
||||||
show binlog events from 107;
|
include/show_binlog_events.inc
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
connection master;
|
||||||
drop table test.t1;
|
drop table test.t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,31 +1,37 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
select * into outfile 'MYSQLTEST_VARDIR/tmp/rpl_loaddatalocal.select_outfile' from t1;
|
select * into outfile 'MYSQLTEST_VARDIR/tmp/rpl_loaddatalocal.select_outfile' from t1;
|
||||||
truncate table t1;
|
truncate table t1;
|
||||||
load data local infile 'MYSQLTEST_VARDIR/tmp/rpl_loaddatalocal.select_outfile' into table t1;
|
load data local infile 'MYSQLTEST_VARDIR/tmp/rpl_loaddatalocal.select_outfile' into table t1;
|
||||||
|
connection slave;
|
||||||
select a,count(*) from t1 group by a;
|
select a,count(*) from t1 group by a;
|
||||||
a count(*)
|
a count(*)
|
||||||
1 10000
|
1 10000
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
create table t1(a int);
|
create table t1(a int);
|
||||||
insert into t1 values (1), (2), (2), (3);
|
insert into t1 values (1), (2), (2), (3);
|
||||||
select * into outfile 'MYSQLTEST_VARDIR/tmp/rpl_loaddatalocal.select_outfile' from t1;
|
select * into outfile 'MYSQLTEST_VARDIR/tmp/rpl_loaddatalocal.select_outfile' from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1(a int primary key);
|
create table t1(a int primary key);
|
||||||
load data local infile 'MYSQLTEST_VARDIR/tmp/rpl_loaddatalocal.select_outfile' into table t1;
|
load data local infile 'MYSQLTEST_VARDIR/tmp/rpl_loaddatalocal.select_outfile' into table t1;
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '2' for key 'PRIMARY'
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
3
|
3
|
||||||
|
connection slave;
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
3
|
3
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
CREATE TABLE test.t1 (a INT, blob_column LONGBLOB, PRIMARY KEY(a));
|
CREATE TABLE test.t1 (a INT, blob_column LONGBLOB, PRIMARY KEY(a));
|
||||||
@ -119,6 +116,8 @@ Abernathy
|
|||||||
aberrant
|
aberrant
|
||||||
aberration
|
aberration
|
||||||
|
|
||||||
|
connection slave;
|
||||||
|
connection slave;
|
||||||
SELECT * FROM test.t1 ORDER BY blob_column;
|
SELECT * FROM test.t1 ORDER BY blob_column;
|
||||||
a blob_column
|
a blob_column
|
||||||
1 abase
|
1 abase
|
||||||
@ -223,5 +222,8 @@ Abernathy
|
|||||||
aberrant
|
aberrant
|
||||||
aberration
|
aberration
|
||||||
|
|
||||||
|
connection master;
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP TABLE test.t1;
|
DROP TABLE test.t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,46 +1,37 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
create table if not exists t1 (n int);
|
||||||
reset slave;
|
drop table t1;
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
call mtr.add_suppression ("Slave I/O: Got fatal error 1236 from master when reading data from binary");
|
||||||
start slave;
|
call mtr.add_suppression ("Error in Log_event::read_log_event");
|
||||||
show master status;
|
show master status;
|
||||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||||
master-bin.000001 107 <Binlog_Ignore_DB>
|
master-bin.000001 # <Binlog_Do_DB> <Binlog_Ignore_DB>
|
||||||
show slave status;
|
connection slave;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running 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 Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed 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 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
include/stop_slave.inc
|
||||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 107 # # master-bin.000001 Yes Yes 0 0 107 # None 0 No # No 0 0 1
|
change master to master_log_pos=MASTER_LOG_POS;
|
||||||
stop slave;
|
|
||||||
change master to master_log_pos=107;
|
|
||||||
start slave;
|
start slave;
|
||||||
stop slave;
|
include/wait_for_slave_io_error.inc [errno=1236]
|
||||||
change master to master_log_pos=107;
|
Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'binlog truncated in the middle of event; consider out of disk space on master; the first event 'master-bin.000001' at XXX, the last event read from 'master-bin.000001' at XXX, the last byte read from 'master-bin.000001' at XXX.''
|
||||||
show slave status;
|
include/stop_slave_sql.inc
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running 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 Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed 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 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
connection master;
|
||||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 107 # # master-bin.000001 No No 0 0 107 # None 0 No # No 0 0 1
|
|
||||||
start slave;
|
|
||||||
show slave status;
|
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running 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 Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed 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 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
|
||||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 107 # # master-bin.000001 Yes Yes 0 0 107 # None 0 No # No 0 0 1
|
|
||||||
stop slave;
|
|
||||||
change master to master_log_pos=178;
|
|
||||||
start slave;
|
|
||||||
show slave status;
|
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running 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 Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed 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 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
|
||||||
# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 178 # # master-bin.000001 No Yes 0 0 178 # None 0 No # No 1236 Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position' 0 1
|
|
||||||
show master status;
|
show master status;
|
||||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||||
master-bin.000001 107 <Binlog_Ignore_DB>
|
master-bin.000001 # <Binlog_Do_DB> <Binlog_Ignore_DB>
|
||||||
create table if not exists t1 (n int);
|
create table if not exists t1 (n int);
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1 (n int);
|
create table t1 (n int);
|
||||||
insert into t1 values (1),(2),(3);
|
insert into t1 values (1),(2),(3);
|
||||||
stop slave;
|
connection slave;
|
||||||
change master to master_log_pos=207;
|
change master to master_log_pos=MASTER_LOG_POS;
|
||||||
start slave;
|
start slave;
|
||||||
select * from t1 ORDER BY n;
|
select * from t1 ORDER BY n;
|
||||||
n
|
n
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
3
|
3
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
End of 5.0 tests
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1 (a int not null auto_increment primary key, b int, key(b));
|
create table t1 (a int not null auto_increment primary key, b int, key(b));
|
||||||
INSERT INTO t1 (a) VALUES (1),(2);
|
INSERT INTO t1 (a) VALUES (1),(2);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
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 master_pos_wait('master-bin.999999',0,2);
|
|
||||||
master_pos_wait('master-bin.999999',0,2)
|
|
||||||
-1
|
|
||||||
explain extended select master_pos_wait('master-bin.999999',0,2);
|
|
||||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
|
||||||
Warnings:
|
|
||||||
Note 1003 select master_pos_wait('master-bin.999999',0,2) AS `master_pos_wait('master-bin.999999',0,2)`
|
|
||||||
select master_pos_wait('master-bin.999999',0);
|
|
||||||
stop slave sql_thread;
|
|
||||||
master_pos_wait('master-bin.999999',0)
|
|
||||||
NULL
|
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
CALL mtr.add_suppression('Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT');
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1(id int, i int, r1 int, r2 int, p varchar(100));
|
create table t1(id int, i int, r1 int, r2 int, p varchar(100));
|
||||||
insert into t1 values(1, connection_id(), 0, 0, "");
|
insert into t1 values(1, connection_id(), 0, 0, "");
|
||||||
insert into t1 values(2, 0, rand()*1000, rand()*1000, "");
|
insert into t1 values(2, 0, rand()*1000, rand()*1000, "");
|
||||||
@ -13,12 +10,52 @@ delete from t1 where id=6;
|
|||||||
set sql_log_bin=1;
|
set sql_log_bin=1;
|
||||||
insert into t1 values(3, 0, 0, 0, password('does_this_work?'));
|
insert into t1 values(3, 0, 0, 0, password('does_this_work?'));
|
||||||
insert into t1 values(4, connection_id(), rand()*1000, rand()*1000, password('does_this_still_work?'));
|
insert into t1 values(4, connection_id(), rand()*1000, rand()*1000, password('does_this_still_work?'));
|
||||||
select * into outfile '../../tmp/rpl_misc_functions.outfile' from t1;
|
select * into outfile 'rpl_misc_functions.outfile' from t1;
|
||||||
create table t2 like t1;
|
connection slave;
|
||||||
load data local infile 'MYSQLTEST_VARDIR/tmp/rpl_misc_functions.outfile' into table t2;
|
create temporary table t2 like t1;
|
||||||
|
load data local infile 'MYSQLD_DATADIR/test/rpl_misc_functions.outfile' into table t2;
|
||||||
select * from t1, t2 where (t1.id=t2.id) and not(t1.i=t2.i and t1.r1=t2.r1 and t1.r2=t2.r2 and t1.p=t2.p);
|
select * from t1, t2 where (t1.id=t2.id) and not(t1.i=t2.i and t1.r1=t2.r1 and t1.r2=t2.r2 and t1.p=t2.p);
|
||||||
id i r1 r2 p id i r1 r2 p
|
id i r1 r2 p id i r1 r2 p
|
||||||
stop slave;
|
connection master;
|
||||||
drop table t1;
|
|
||||||
drop table t2;
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
CREATE TABLE t1 (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
col_a DOUBLE DEFAULT NULL);
|
||||||
|
CREATE PROCEDURE test_replication_sp1()
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO t1 (col_a) VALUES (rand()), (rand());
|
||||||
|
INSERT INTO t1 (col_a) VALUES (rand());
|
||||||
|
END|
|
||||||
|
CREATE PROCEDURE test_replication_sp2()
|
||||||
|
BEGIN
|
||||||
|
CALL test_replication_sp1();
|
||||||
|
CALL test_replication_sp1();
|
||||||
|
END|
|
||||||
|
CREATE FUNCTION test_replication_sf() RETURNS DOUBLE DETERMINISTIC
|
||||||
|
BEGIN
|
||||||
|
RETURN (rand() + rand());
|
||||||
|
END|
|
||||||
|
CALL test_replication_sp1();
|
||||||
|
CALL test_replication_sp2();
|
||||||
|
INSERT INTO t1 (col_a) VALUES (test_replication_sf());
|
||||||
|
INSERT INTO t1 (col_a) VALUES (test_replication_sf());
|
||||||
|
INSERT INTO t1 (col_a) VALUES (test_replication_sf());
|
||||||
|
connection slave;
|
||||||
|
select * from t1 into outfile "../../tmp/t1_slave.txt";
|
||||||
|
Warnings:
|
||||||
|
Warning 1287 '<select expression> INTO <destination>;' is deprecated and will be removed in a future release. Please use 'SELECT <select list> INTO <destination> FROM...' instead
|
||||||
|
connection master;
|
||||||
|
create temporary table t1_slave select * from t1 where 1=0;
|
||||||
|
load data infile '../../tmp/t1_slave.txt' into table t1_slave;
|
||||||
|
select count(*) into @aux from t1 join t1_slave using (id)
|
||||||
|
where ABS(t1.col_a - t1_slave.col_a) < 0.0000001 ;
|
||||||
|
SELECT @aux;
|
||||||
|
@aux
|
||||||
|
12
|
||||||
|
connection master;
|
||||||
|
DROP TABLE t1, t1_slave;
|
||||||
|
DROP PROCEDURE test_replication_sp1;
|
||||||
|
DROP PROCEDURE test_replication_sp2;
|
||||||
|
DROP FUNCTION test_replication_sf;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1 (a int primary key);
|
create table t1 (a int primary key);
|
||||||
create table t2 (a int);
|
create table t2 (a int);
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
@ -14,9 +10,13 @@ a
|
|||||||
select * from t2;
|
select * from t2;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
|
connection slave;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
a
|
a
|
||||||
select * from t2;
|
select * from t2;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
|
connection master;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
set sql_log_bin=0;
|
set sql_log_bin=0;
|
||||||
create database mysqltest_from;
|
create database mysqltest_from;
|
||||||
set sql_log_bin=1;
|
set sql_log_bin=1;
|
||||||
|
connection slave;
|
||||||
create database mysqltest_to;
|
create database mysqltest_to;
|
||||||
|
connection master;
|
||||||
use mysqltest_from;
|
use mysqltest_from;
|
||||||
drop table if exists a;
|
drop table if exists a;
|
||||||
CREATE TABLE a (i INT);
|
CREATE TABLE a (i INT);
|
||||||
@ -20,10 +19,12 @@ delete alias FROM a alias where alias.i=2;
|
|||||||
select * from a;
|
select * from a;
|
||||||
i
|
i
|
||||||
3
|
3
|
||||||
|
connection slave;
|
||||||
use mysqltest_to;
|
use mysqltest_to;
|
||||||
select * from a;
|
select * from a;
|
||||||
i
|
i
|
||||||
3
|
3
|
||||||
|
connection master;
|
||||||
create table t1 (a int primary key);
|
create table t1 (a int primary key);
|
||||||
create table t2 (a int);
|
create table t2 (a int);
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
@ -34,11 +35,15 @@ a
|
|||||||
select * from t2;
|
select * from t2;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
|
connection slave;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
ERROR 42S02: Table 'mysqltest_to.t1' doesn't exist
|
ERROR 42S02: Table 'mysqltest_to.t1' doesn't exist
|
||||||
select * from t2;
|
select * from t2;
|
||||||
ERROR 42S02: Table 'mysqltest_to.t2' doesn't exist
|
ERROR 42S02: Table 'mysqltest_to.t2' doesn't exist
|
||||||
|
connection master;
|
||||||
set sql_log_bin=0;
|
set sql_log_bin=0;
|
||||||
drop database mysqltest_from;
|
drop database mysqltest_from;
|
||||||
set sql_log_bin=1;
|
set sql_log_bin=1;
|
||||||
|
connection slave;
|
||||||
drop database mysqltest_to;
|
drop database mysqltest_to;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
drop database if exists d1;
|
drop database if exists d1;
|
||||||
drop database if exists d2;
|
drop database if exists d2;
|
||||||
|
connection slave;
|
||||||
drop database if exists d2;
|
drop database if exists d2;
|
||||||
|
connection master;
|
||||||
create database d1;
|
create database d1;
|
||||||
create table d1.t0 (id int);
|
create table d1.t0 (id int);
|
||||||
create database d2;
|
create database d2;
|
||||||
@ -17,9 +16,13 @@ insert into t1 values (1), (2), (3), (4), (5);
|
|||||||
insert into t2 select id + 3 from t1;
|
insert into t2 select id + 3 from t1;
|
||||||
update t1 join t2 using (id) set t1.id = 0;
|
update t1 join t2 using (id) set t1.id = 0;
|
||||||
insert into d1.t0 values (0);
|
insert into d1.t0 values (0);
|
||||||
|
connection slave;
|
||||||
use d1;
|
use d1;
|
||||||
select * from t0 where id=0;
|
select * from t0 where id=0;
|
||||||
id
|
id
|
||||||
0
|
0
|
||||||
|
connection master;
|
||||||
drop database d1;
|
drop database d1;
|
||||||
drop database d2;
|
drop database d2;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1(n char(30));
|
create table t1(n char(30));
|
||||||
prepare stmt1 from 'insert into t1 values (?)';
|
prepare stmt1 from 'insert into t1 values (?)';
|
||||||
@ -19,12 +15,40 @@ set @var2= 'insert into t1 values (concat("from-var-", ?))';
|
|||||||
prepare stmt2 from @var2;
|
prepare stmt2 from @var2;
|
||||||
set @var1='from-master-3';
|
set @var1='from-master-3';
|
||||||
execute stmt2 using @var1;
|
execute stmt2 using @var1;
|
||||||
|
connection slave;
|
||||||
SELECT * FROM t1 ORDER BY n;
|
SELECT * FROM t1 ORDER BY n;
|
||||||
n
|
n
|
||||||
from-master-1
|
from-master-1
|
||||||
from-master-2-'',
|
from-master-2-'',
|
||||||
from-var-from-master-3
|
from-var-from-master-3
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
stop slave;
|
stop slave;
|
||||||
reset master;
|
include/wait_for_slave_to_stop.inc
|
||||||
reset slave;
|
|
||||||
|
########################################################################
|
||||||
|
#
|
||||||
|
# BUG#25843: Changing default database between PREPARE and EXECUTE of
|
||||||
|
# statement breaks binlog.
|
||||||
|
#
|
||||||
|
########################################################################
|
||||||
|
connection slave;
|
||||||
|
START SLAVE;
|
||||||
|
connection master;
|
||||||
|
CREATE DATABASE mysqltest1;
|
||||||
|
CREATE TABLE t1(db_name CHAR(32), db_col_name CHAR(32));
|
||||||
|
PREPARE stmt_d_1 FROM 'INSERT INTO t1 VALUES(DATABASE(), @@collation_database)';
|
||||||
|
EXECUTE stmt_d_1;
|
||||||
|
use mysqltest1;
|
||||||
|
EXECUTE stmt_d_1;
|
||||||
|
connection slave;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
db_name db_col_name
|
||||||
|
test latin1_swedish_ci
|
||||||
|
test latin1_swedish_ci
|
||||||
|
connection master;
|
||||||
|
DROP DATABASE mysqltest1;
|
||||||
|
use test;
|
||||||
|
DROP TABLE t1;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,55 +0,0 @@
|
|||||||
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;
|
|
||||||
**** On Master ****
|
|
||||||
CREATE TABLE t1 (a INT, b LONG);
|
|
||||||
INSERT INTO t1 VALUES (1,1), (2,2);
|
|
||||||
INSERT INTO t1 VALUES (3,UUID()), (4,UUID());
|
|
||||||
SHOW BINLOG EVENTS;
|
|
||||||
**** On 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 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 0
|
|
||||||
Last_IO_Error
|
|
||||||
Last_SQL_Errno 0
|
|
||||||
Last_SQL_Error
|
|
||||||
Replicate_Ignore_Server_Ids
|
|
||||||
Master_Server_Id 1
|
|
||||||
SHOW BINLOG EVENTS;
|
|
||||||
DROP TABLE IF EXISTS t1;
|
|
@ -1,19 +1,18 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection slave;
|
||||||
reset slave;
|
include/stop_slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
connection master;
|
||||||
start slave;
|
|
||||||
stop slave;
|
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
start slave io_thread;
|
start slave io_thread;
|
||||||
stop slave io_thread;
|
include/wait_for_slave_param.inc [Slave_IO_State]
|
||||||
|
include/stop_slave_io.inc
|
||||||
reset slave;
|
reset slave;
|
||||||
start slave;
|
include/start_slave.inc
|
||||||
select master_pos_wait('master-bin.001',200,6)=-1;
|
include/assert.inc [Assert that master_pos_wait does not timeout nor it returns NULL]
|
||||||
master_pos_wait('master-bin.001',200,6)=-1
|
include/rpl_end.inc
|
||||||
0
|
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
drop database if exists mysqltest1;
|
drop database if exists mysqltest1;
|
||||||
drop database if exists mysqltest2;
|
drop database if exists mysqltest2;
|
||||||
create database mysqltest1;
|
create database mysqltest1;
|
||||||
@ -11,13 +7,19 @@ create database mysqltest2;
|
|||||||
use mysqltest1;
|
use mysqltest1;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
insert into t1 values(1);
|
insert into t1 values(1);
|
||||||
|
connection slave;
|
||||||
select * from mysqltest1.t1;
|
select * from mysqltest1.t1;
|
||||||
ERROR 42S02: Table 'mysqltest1.t1' doesn't exist
|
ERROR 42S02: Table 'mysqltest1.t1' doesn't exist
|
||||||
|
connection master;
|
||||||
use mysqltest2;
|
use mysqltest2;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
insert into t1 values(1);
|
insert into t1 values(1);
|
||||||
|
connection slave;
|
||||||
select * from mysqltest2.t1;
|
select * from mysqltest2.t1;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
|
connection master;
|
||||||
drop database mysqltest1;
|
drop database mysqltest1;
|
||||||
drop database mysqltest2;
|
drop database mysqltest2;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create database if not exists mysqltest1;
|
create database if not exists mysqltest1;
|
||||||
DROP TABLE IF EXISTS mysqltest1.t1;
|
DROP TABLE IF EXISTS mysqltest1.t1;
|
||||||
CREATE TABLE mysqltest1.t1 (n MEDIUMINT NOT NULL AUTO_INCREMENT,
|
CREATE TABLE mysqltest1.t1 (n MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||||
@ -24,6 +21,10 @@ FOR EACH ROW BEGIN
|
|||||||
SET new.b = mysqltest1.f1();
|
SET new.b = mysqltest1.f1();
|
||||||
END|
|
END|
|
||||||
INSERT INTO mysqltest1.t1 SET n = NULL, a = now();
|
INSERT INTO mysqltest1.t1 SET n = NULL, a = now();
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
DROP TABLE IF EXISTS mysqltest1.t1;
|
DROP TABLE IF EXISTS mysqltest1.t1;
|
||||||
DROP FUNCTION mysqltest1.f1;
|
DROP FUNCTION mysqltest1.f1;
|
||||||
DROP DATABASE mysqltest1;
|
DROP DATABASE mysqltest1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
set local sql_mode="";
|
||||||
reset slave;
|
connection master;
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP DATABASE IF EXISTS mysqltest1;
|
DROP DATABASE IF EXISTS mysqltest1;
|
||||||
CREATE DATABASE mysqltest1;
|
CREATE DATABASE mysqltest1;
|
||||||
CREATE USER tester IDENTIFIED BY 'test';
|
CREATE USER tester IDENTIFIED BY 'test';
|
||||||
GRANT ALL ON mysqltest1.* TO 'tester'@'%' IDENTIFIED BY 'test';
|
GRANT ALL ON mysqltest1.* TO 'tester'@'%' IDENTIFIED BY 'test';
|
||||||
GRANT ALL ON mysqltest1.* TO ''@'localhost%';
|
GRANT ALL ON mysqltest1.* TO ''@'localhost%';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
|
connect m_1,localhost,tester,,mysqltest1;
|
||||||
|
connection m_1;
|
||||||
CREATE TABLE mysqltest1.t1 (a INT, users VARCHAR(255), PRIMARY KEY(a));
|
CREATE TABLE mysqltest1.t1 (a INT, users VARCHAR(255), PRIMARY KEY(a));
|
||||||
INSERT INTO mysqltest1.t1 VALUES(1,USER());
|
INSERT INTO mysqltest1.t1 VALUES(1,USER());
|
||||||
INSERT INTO mysqltest1.t1 VALUES(2,CURRENT_USER());
|
INSERT INTO mysqltest1.t1 VALUES(2,CURRENT_USER());
|
||||||
@ -19,21 +19,26 @@ INSERT INTO mysqltest1.t1 VALUES(3,USER());
|
|||||||
INSERT INTO mysqltest1.t1 VALUES(4,CURRENT_USER());
|
INSERT INTO mysqltest1.t1 VALUES(4,CURRENT_USER());
|
||||||
end|
|
end|
|
||||||
CALL mysqltest1.p1();
|
CALL mysqltest1.p1();
|
||||||
|
connection master;
|
||||||
SELECT * FROM mysqltest1.t1 ORDER BY a;
|
SELECT * FROM mysqltest1.t1 ORDER BY a;
|
||||||
a users
|
a users
|
||||||
1 tester@localhost
|
1 tester@localhost
|
||||||
2 @localhost%
|
2 @localhost%
|
||||||
3 tester@localhost
|
3 tester@localhost
|
||||||
4 @localhost%
|
4 @localhost%
|
||||||
|
connection slave;
|
||||||
SELECT * FROM mysqltest1.t1 ORDER BY a;
|
SELECT * FROM mysqltest1.t1 ORDER BY a;
|
||||||
a users
|
a users
|
||||||
1 tester@localhost
|
1 tester@localhost
|
||||||
2 @localhost%
|
2 @localhost%
|
||||||
3 tester@localhost
|
3 tester@localhost
|
||||||
4 @localhost%
|
4 @localhost%
|
||||||
|
connection master;
|
||||||
|
DROP DATABASE mysqltest1;
|
||||||
REVOKE ALL ON mysqltest1.* FROM 'tester'@'%';
|
REVOKE ALL ON mysqltest1.* FROM 'tester'@'%';
|
||||||
REVOKE ALL ON mysqltest1.* FROM ''@'localhost%';
|
REVOKE ALL ON mysqltest1.* FROM ''@'localhost%';
|
||||||
DROP DATABASE mysqltest1;
|
DROP USER tester@'%';
|
||||||
DROP USER 'tester';
|
|
||||||
DROP USER ''@'localhost%';
|
DROP USER ''@'localhost%';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
**** On Master ****
|
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int);
|
||||||
CREATE TABLE t2 (a int);
|
CREATE TABLE t2 (a int);
|
||||||
CREATE TEMPORARY TABLE t2 (a int, b int);
|
CREATE TEMPORARY TABLE t2 (a int, b int);
|
||||||
@ -12,47 +8,48 @@ SHOW TABLES;
|
|||||||
Tables_in_test
|
Tables_in_test
|
||||||
t1
|
t1
|
||||||
t2
|
t2
|
||||||
**** On Slave ****
|
connection slave;
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t1
|
t1
|
||||||
t2
|
t2
|
||||||
**** On Master ****
|
connection master;
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t1
|
t1
|
||||||
t2
|
t2
|
||||||
**** On Slave ****
|
connection slave;
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t1
|
t1
|
||||||
t2
|
t2
|
||||||
**** On Master ****
|
connection master;
|
||||||
CREATE TEMPORARY TABLE t2 (a int, b int);
|
CREATE TEMPORARY TABLE t2 (a int, b int);
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t1
|
t1
|
||||||
t2
|
t2
|
||||||
**** On Slave ****
|
connection slave;
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t1
|
t1
|
||||||
t2
|
t2
|
||||||
**** On Master ****
|
connection master;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
SHOW BINLOG EVENTS;
|
include/show_binlog_events.inc
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
master-bin.000001 4 Format_desc 1 107 Server ver: VERSION, Binlog ver: 4
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
master-bin.000001 107 Query 1 193 use `test`; CREATE TABLE t1 (a int)
|
master-bin.000001 # Query # # use `test`; CREATE TABLE t1 (a int)
|
||||||
master-bin.000001 193 Query 1 279 use `test`; CREATE TABLE t2 (a int)
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
master-bin.000001 279 Query 1 403 use `test`; DROP TEMPORARY TABLE IF EXISTS `t2` /* generated by server */
|
master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (a int)
|
||||||
master-bin.000001 403 Query 1 527 use `test`; DROP TEMPORARY TABLE IF EXISTS `t2` /* generated by server */
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
master-bin.000001 527 Query 1 631 use `test`; DROP TABLE `t1` /* generated by server */
|
master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t2
|
t2
|
||||||
**** On Slave ****
|
connection slave;
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t2
|
t2
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP FUNCTION test.f1;
|
DROP FUNCTION test.f1;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
create table test.t1 (a int, PRIMARY KEY(a));
|
create table test.t1 (a int, PRIMARY KEY(a));
|
||||||
@ -22,9 +19,14 @@ select * from test.t1;
|
|||||||
a
|
a
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
connection slave;
|
||||||
|
connection slave;
|
||||||
select * from test.t1;
|
select * from test.t1;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
connection master;
|
||||||
DROP FUNCTION test.f1;
|
DROP FUNCTION test.f1;
|
||||||
DROP TABLE test.t1;
|
DROP TABLE test.t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1 (a int not null primary key);
|
create table t1 (a int not null primary key);
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
create table t2 (a int);
|
create table t2 (a int);
|
||||||
insert into t2 values (1);
|
insert into t2 values (1);
|
||||||
update t1, t2 set t1.a = 0 where t1.a = t2.a;
|
update t1, t2 set t1.a = 0 where t1.a = t2.a;
|
||||||
|
connection slave;
|
||||||
show tables;
|
show tables;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t1
|
t1
|
||||||
@ -16,46 +14,14 @@ select * from t1;
|
|||||||
a
|
a
|
||||||
0
|
0
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection master;
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
show slave status;
|
connection slave;
|
||||||
Slave_IO_State #
|
call mtr.add_suppression("Slave SQL.*Error executing row event: .Table .test.t1. doesn.t exist., error.* 1146");
|
||||||
Master_Host 127.0.0.1
|
include/wait_for_slave_sql_error.inc [errno=1146]
|
||||||
Master_User root
|
==== Clean up ====
|
||||||
Master_Port MASTER_MYPORT
|
include/stop_slave_io.inc
|
||||||
Connect_Retry 1
|
RESET SLAVE;
|
||||||
Master_Log_File master-bin.000001
|
connection master;
|
||||||
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 test.t2
|
|
||||||
Replicate_Wild_Do_Table
|
|
||||||
Replicate_Wild_Ignore_Table
|
|
||||||
Last_Errno 1146
|
|
||||||
Last_Error Error executing row event: 'Table 'test.t1' doesn't exist'
|
|
||||||
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 0
|
|
||||||
Last_IO_Error
|
|
||||||
Last_SQL_Errno 1146
|
|
||||||
Last_SQL_Error Error executing row event: 'Table 'test.t1' doesn't exist'
|
|
||||||
Replicate_Ignore_Server_Ids
|
|
||||||
Master_Server_Id 1
|
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,20 +1,19 @@
|
|||||||
|
include/master-slave.inc
|
||||||
|
[connection master]
|
||||||
|
connection slave;
|
||||||
stop slave;
|
stop slave;
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
connection master;
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
stop slave;
|
|
||||||
#
|
#
|
||||||
# Generate a big enough master's binlog to cause relay log rotations
|
# Generate a big enough master's binlog to cause relay log rotations
|
||||||
#
|
#
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
#
|
#
|
||||||
# Test 1
|
# Test 1
|
||||||
#
|
#
|
||||||
set @my_max_binlog_size= @@global.max_binlog_size;
|
set @my_max_binlog_size= @@global.max_binlog_size, @my_max_relay_log_size=@@global.max_relay_log_size;
|
||||||
set global max_binlog_size=8192;
|
set global max_binlog_size=8192;
|
||||||
set global max_relay_log_size=8192-1;
|
set global max_relay_log_size=8192-1;
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -23,7 +22,7 @@ select @@global.max_relay_log_size;
|
|||||||
@@global.max_relay_log_size
|
@@global.max_relay_log_size
|
||||||
4096
|
4096
|
||||||
start slave;
|
start slave;
|
||||||
Checking that both slave threads are running.
|
include/check_slave_is_running.inc
|
||||||
#
|
#
|
||||||
# Test 2
|
# Test 2
|
||||||
#
|
#
|
||||||
@ -33,17 +32,19 @@ set global max_relay_log_size=(5*4096);
|
|||||||
select @@global.max_relay_log_size;
|
select @@global.max_relay_log_size;
|
||||||
@@global.max_relay_log_size 20480
|
@@global.max_relay_log_size 20480
|
||||||
start slave;
|
start slave;
|
||||||
Checking that both slave threads are running.
|
include/check_slave_is_running.inc
|
||||||
#
|
#
|
||||||
# Test 3: max_relay_log_size = 0
|
# Test 3: max_relay_log_size = 0
|
||||||
#
|
#
|
||||||
stop slave;
|
stop slave;
|
||||||
reset slave;
|
reset slave;
|
||||||
set global max_relay_log_size=0;
|
set global max_relay_log_size=0;
|
||||||
|
Warnings:
|
||||||
|
Warning 1292 Truncated incorrect max_relay_log_size value: '0'
|
||||||
select @@global.max_relay_log_size;
|
select @@global.max_relay_log_size;
|
||||||
@@global.max_relay_log_size 0
|
@@global.max_relay_log_size 4096
|
||||||
start slave;
|
start slave;
|
||||||
Checking that both slave threads are running.
|
include/check_slave_is_running.inc
|
||||||
#
|
#
|
||||||
# Test 4: Tests below are mainly to ensure that we have not coded with wrong assumptions
|
# Test 4: Tests below are mainly to ensure that we have not coded with wrong assumptions
|
||||||
#
|
#
|
||||||
@ -56,19 +57,27 @@ flush logs;
|
|||||||
reset slave;
|
reset slave;
|
||||||
start slave;
|
start slave;
|
||||||
flush logs;
|
flush logs;
|
||||||
|
connection master;
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
Checking that both slave threads are running.
|
connection slave;
|
||||||
|
include/check_slave_is_running.inc
|
||||||
#
|
#
|
||||||
# Test 6: one more rotation, to be sure Relay_Log_Space is correctly updated
|
# Test 6: one more rotation, to be sure Relay_Log_Space is correctly updated
|
||||||
#
|
#
|
||||||
flush logs;
|
flush logs;
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
Checking that both slave threads are running.
|
connection slave;
|
||||||
|
include/check_slave_is_running.inc
|
||||||
|
connection master;
|
||||||
flush logs;
|
flush logs;
|
||||||
show master status;
|
show master status;
|
||||||
File Position Binlog_Do_DB Binlog_Ignore_DB
|
File Position Binlog_Do_DB Binlog_Ignore_DB
|
||||||
master-bin.000002 # <Binlog_Do_DB> <Binlog_Ignore_DB>
|
master-bin.000002 # <Binlog_Do_DB> <Binlog_Ignore_DB>
|
||||||
|
connection slave;
|
||||||
set global max_binlog_size= @my_max_binlog_size;
|
set global max_binlog_size= @my_max_binlog_size;
|
||||||
|
set global max_relay_log_size= @my_max_relay_log_size;
|
||||||
#
|
#
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
#
|
#
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,41 +1,58 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection slave;
|
||||||
reset slave;
|
Master_User = 'root'
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
Master_Host = '127.0.0.1'
|
||||||
start slave;
|
|
||||||
Master_User root
|
|
||||||
Master_Host 127.0.0.1
|
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
change master to master_user='test';
|
change master to master_user='test';
|
||||||
Master_User test
|
Master_User = 'test'
|
||||||
Master_Host 127.0.0.1
|
Master_Host = '127.0.0.1'
|
||||||
reset slave;
|
reset slave;
|
||||||
Master_User test
|
Master_User = 'test'
|
||||||
Master_Host 127.0.0.1
|
Master_Host = '127.0.0.1'
|
||||||
change master to master_user='root';
|
change master to master_user='root';
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
Master_User root
|
Master_User = 'root'
|
||||||
Master_Host 127.0.0.1
|
Master_Host = '127.0.0.1'
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
reset slave;
|
reset slave;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
|
connection master;
|
||||||
create temporary table t1 (a int);
|
create temporary table t1 (a int);
|
||||||
|
connection slave;
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
reset slave;
|
reset slave;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
show status like 'slave_open_temp_tables';
|
show status like 'slave_open_temp_tables';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Slave_open_temp_tables 0
|
Slave_open_temp_tables 0
|
||||||
|
connection master;
|
||||||
|
drop temporary table if exists t1;
|
||||||
|
connection slave;
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
reset slave;
|
reset slave;
|
||||||
|
include/check_slave_no_error.inc
|
||||||
change master to master_user='impossible_user_name';
|
change master to master_user='impossible_user_name';
|
||||||
start slave;
|
start slave;
|
||||||
stop slave;
|
include/wait_for_slave_io_error.inc [errno=1045]
|
||||||
|
include/stop_slave_sql.inc
|
||||||
change master to master_user='root';
|
change master to master_user='root';
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
|
include/check_slave_no_error.inc
|
||||||
stop slave;
|
stop slave;
|
||||||
change master to master_user='impossible_user_name';
|
change master to master_user='impossible_user_name';
|
||||||
start slave;
|
start slave;
|
||||||
stop slave;
|
include/wait_for_slave_io_error.inc [errno=1045]
|
||||||
|
include/stop_slave_sql.inc
|
||||||
reset slave;
|
reset slave;
|
||||||
|
include/check_slave_no_error.inc
|
||||||
|
change master to master_user='root';
|
||||||
|
reset slave;
|
||||||
|
include/start_slave.inc
|
||||||
|
include/stop_slave.inc
|
||||||
|
reset slave all;
|
||||||
|
start slave;
|
||||||
|
ERROR HY000: Misconfigured slave: MASTER_HOST was not set; Fix in config file or with CHANGE MASTER TO
|
||||||
|
CHANGE MASTER TO MASTER_HOST= 'MASTER_HOST', MASTER_USER= 'MASTER_USER', MASTER_PORT= MASTER_PORT;
|
||||||
|
include/start_slave.inc
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
|
|
||||||
<Begin test section 1 (non deterministic SP)>
|
<Begin test section 1 (non deterministic SP)>
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
@ -34,12 +30,14 @@ a t
|
|||||||
2 NEW
|
2 NEW
|
||||||
3 NEW
|
3 NEW
|
||||||
4 NEW
|
4 NEW
|
||||||
|
connection slave;
|
||||||
SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t2 ORDER BY a;
|
||||||
a t
|
a t
|
||||||
1 NEW
|
1 NEW
|
||||||
2 NEW
|
2 NEW
|
||||||
3 NEW
|
3 NEW
|
||||||
4 NEW
|
4 NEW
|
||||||
|
connection master;
|
||||||
call test.p2(1);
|
call test.p2(1);
|
||||||
SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t2 ORDER BY a;
|
||||||
a t
|
a t
|
||||||
@ -47,12 +45,14 @@ a t
|
|||||||
2 Tex
|
2 Tex
|
||||||
3 Tex
|
3 Tex
|
||||||
4 Tex
|
4 Tex
|
||||||
|
connection slave;
|
||||||
SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t2 ORDER BY a;
|
||||||
a t
|
a t
|
||||||
1 Tex
|
1 Tex
|
||||||
2 Tex
|
2 Tex
|
||||||
3 Tex
|
3 Tex
|
||||||
4 Tex
|
4 Tex
|
||||||
|
connection master;
|
||||||
call test.p2(2);
|
call test.p2(2);
|
||||||
SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t2 ORDER BY a;
|
||||||
a t
|
a t
|
||||||
@ -60,12 +60,14 @@ a t
|
|||||||
2 SQL
|
2 SQL
|
||||||
3 SQL
|
3 SQL
|
||||||
4 SQL
|
4 SQL
|
||||||
|
connection slave;
|
||||||
SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t2 ORDER BY a;
|
||||||
a t
|
a t
|
||||||
1 SQL
|
1 SQL
|
||||||
2 SQL
|
2 SQL
|
||||||
3 SQL
|
3 SQL
|
||||||
4 SQL
|
4 SQL
|
||||||
|
connection master;
|
||||||
call test.p2(3);
|
call test.p2(3);
|
||||||
SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t2 ORDER BY a;
|
||||||
a t
|
a t
|
||||||
@ -73,13 +75,17 @@ a t
|
|||||||
2 NONE
|
2 NONE
|
||||||
3 NONE
|
3 NONE
|
||||||
4 NONE
|
4 NONE
|
||||||
|
connection slave;
|
||||||
SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t2 ORDER BY a;
|
||||||
a t
|
a t
|
||||||
1 NONE
|
1 NONE
|
||||||
2 NONE
|
2 NONE
|
||||||
3 NONE
|
3 NONE
|
||||||
4 NONE
|
4 NONE
|
||||||
|
connection master;
|
||||||
DROP PROCEDURE test.p1;
|
DROP PROCEDURE test.p1;
|
||||||
DROP PROCEDURE test.p2;
|
DROP PROCEDURE test.p2;
|
||||||
DROP TABLE test.t1;
|
DROP TABLE test.t1;
|
||||||
DROP TABLE test.t2;
|
DROP TABLE test.t2;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP PROCEDURE IF EXISTS test.p2;
|
DROP PROCEDURE IF EXISTS test.p2;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
@ -42,9 +39,6 @@ INSERT INTO test.t1 VALUES (4,'MySQL'),(20,'ROCKS'),(11,'Texas'),(10,'kyle');
|
|||||||
INSERT INTO test.t2 VALUES (4),(2),(1),(3);
|
INSERT INTO test.t2 VALUES (4),(2),(1),(3);
|
||||||
UPDATE test.t1 SET id=id+4 WHERE id=4;
|
UPDATE test.t1 SET id=id+4 WHERE id=4;
|
||||||
END|
|
END|
|
||||||
|
|
||||||
< ---- Master selects-- >
|
|
||||||
-------------------------
|
|
||||||
CALL test.p2();
|
CALL test.p2();
|
||||||
SELECT * FROM test.t1 ORDER BY id;
|
SELECT * FROM test.t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
@ -58,9 +52,7 @@ id2
|
|||||||
2
|
2
|
||||||
3
|
3
|
||||||
4
|
4
|
||||||
|
connection slave;
|
||||||
< ---- Slave selects-- >
|
|
||||||
------------------------
|
|
||||||
SELECT * FROM test.t1 ORDER BY id;
|
SELECT * FROM test.t1 ORDER BY id;
|
||||||
id data
|
id data
|
||||||
8 MySQL
|
8 MySQL
|
||||||
@ -73,30 +65,28 @@ id2
|
|||||||
2
|
2
|
||||||
3
|
3
|
||||||
4
|
4
|
||||||
|
connection master;
|
||||||
< ---- Master selects-- >
|
|
||||||
-------------------------
|
|
||||||
CALL test.p1();
|
CALL test.p1();
|
||||||
Warnings:
|
|
||||||
Error 1329 No data - zero rows fetched, selected, or processed
|
|
||||||
SELECT * FROM test.t3 ORDER BY id3;
|
SELECT * FROM test.t3 ORDER BY id3;
|
||||||
id3 c
|
id3 c
|
||||||
1 MySQL
|
1 MySQL
|
||||||
2 kyle
|
2 kyle
|
||||||
3 Texas
|
3 Texas
|
||||||
4 ROCKS
|
4 ROCKS
|
||||||
|
connection slave;
|
||||||
< ---- Slave selects-- >
|
|
||||||
------------------------
|
|
||||||
SELECT * FROM test.t3 ORDER BY id3;
|
SELECT * FROM test.t3 ORDER BY id3;
|
||||||
id3 c
|
id3 c
|
||||||
1 MySQL
|
1 MySQL
|
||||||
2 kyle
|
2 kyle
|
||||||
3 Texas
|
3 Texas
|
||||||
4 ROCKS
|
4 ROCKS
|
||||||
|
connection master;
|
||||||
ALTER PROCEDURE test.p1 MODIFIES SQL DATA;
|
ALTER PROCEDURE test.p1 MODIFIES SQL DATA;
|
||||||
|
connection master;
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP PROCEDURE IF EXISTS test.p2;
|
DROP PROCEDURE IF EXISTS test.p2;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
DROP TABLE IF EXISTS test.t3;
|
DROP TABLE IF EXISTS test.t3;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
CREATE TABLE test.t1 (a INT,PRIMARY KEY(a));
|
CREATE TABLE test.t1 (a INT,PRIMARY KEY(a));
|
||||||
@ -14,21 +11,19 @@ BEGIN
|
|||||||
SELECT SQL_CALC_FOUND_ROWS * FROM test.t1 LIMIT 1;
|
SELECT SQL_CALC_FOUND_ROWS * FROM test.t1 LIMIT 1;
|
||||||
INSERT INTO test.t2 VALUES(FOUND_ROWS());
|
INSERT INTO test.t2 VALUES(FOUND_ROWS());
|
||||||
END|
|
END|
|
||||||
|
|
||||||
< ---- Master selects-- >
|
|
||||||
-------------------------
|
|
||||||
CALL test.p1();
|
CALL test.p1();
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
SELECT * FROM test.t2;
|
SELECT * FROM test.t2;
|
||||||
a
|
a
|
||||||
2
|
2
|
||||||
|
connection slave;
|
||||||
< ---- Slave selects-- >
|
|
||||||
------------------------
|
|
||||||
SELECT * FROM test.t2;
|
SELECT * FROM test.t2;
|
||||||
a
|
a
|
||||||
2
|
2
|
||||||
|
connection master;
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
@ -53,25 +50,33 @@ SELECT * FROM test.t2 ORDER BY a;
|
|||||||
a
|
a
|
||||||
1
|
1
|
||||||
3
|
3
|
||||||
|
connection slave;
|
||||||
SELECT * FROM test.t2 ORDER BY a;
|
SELECT * FROM test.t2 ORDER BY a;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
3
|
3
|
||||||
|
connection master;
|
||||||
truncate test.t2;
|
truncate test.t2;
|
||||||
call test.p1('b');
|
call test.p1('b');
|
||||||
select * from test.t2 ORDER BY a;
|
select * from test.t2 ORDER BY a;
|
||||||
a
|
a
|
||||||
2
|
2
|
||||||
4
|
4
|
||||||
|
connection slave;
|
||||||
SELECT * FROM test.t2 ORDER BY a;
|
SELECT * FROM test.t2 ORDER BY a;
|
||||||
a
|
a
|
||||||
2
|
2
|
||||||
4
|
4
|
||||||
|
connection master;
|
||||||
truncate test.t2;
|
truncate test.t2;
|
||||||
SELECT * FROM test.t2 ORDER BY a;
|
SELECT * FROM test.t2 ORDER BY a;
|
||||||
a
|
a
|
||||||
|
connection slave;
|
||||||
SELECT * FROM test.t2 ORDER BY a;
|
SELECT * FROM test.t2 ORDER BY a;
|
||||||
a
|
a
|
||||||
|
connection master;
|
||||||
DROP PROCEDURE test.p1;
|
DROP PROCEDURE test.p1;
|
||||||
DROP TABLE test.t1;
|
DROP TABLE test.t1;
|
||||||
DROP TABLE test.t2;
|
DROP TABLE test.t2;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP PROCEDURE IF EXISTS test.p2;
|
DROP PROCEDURE IF EXISTS test.p2;
|
||||||
DROP PROCEDURE IF EXISTS test.p3;
|
DROP PROCEDURE IF EXISTS test.p3;
|
||||||
@ -26,8 +23,10 @@ SELECT * FROM test.t1 ORDER BY a;
|
|||||||
a
|
a
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
connection slave;
|
||||||
show tables;
|
show tables;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
|
connection master;
|
||||||
CREATE PROCEDURE test.p3()
|
CREATE PROCEDURE test.p3()
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO test.t2 VALUES(7);
|
INSERT INTO test.t2 VALUES(7);
|
||||||
@ -44,13 +43,17 @@ SELECT * FROM test.t2 ORDER BY a;
|
|||||||
a
|
a
|
||||||
6
|
6
|
||||||
7
|
7
|
||||||
|
connection slave;
|
||||||
SELECT * FROM test.t2 ORDER BY a;
|
SELECT * FROM test.t2 ORDER BY a;
|
||||||
a
|
a
|
||||||
6
|
6
|
||||||
7
|
7
|
||||||
|
connection master;
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP PROCEDURE IF EXISTS test.p2;
|
DROP PROCEDURE IF EXISTS test.p2;
|
||||||
DROP PROCEDURE IF EXISTS test.p3;
|
DROP PROCEDURE IF EXISTS test.p3;
|
||||||
DROP PROCEDURE IF EXISTS test.p4;
|
DROP PROCEDURE IF EXISTS test.p4;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP PROCEDURE IF EXISTS test.p2;
|
DROP PROCEDURE IF EXISTS test.p2;
|
||||||
DROP PROCEDURE IF EXISTS test.p3;
|
DROP PROCEDURE IF EXISTS test.p3;
|
||||||
@ -58,6 +55,8 @@ ALTER TABLE test.t2 DROP COLUMN to_drop;
|
|||||||
INSERT INTO test.t2 VALUES ('gone',NULL,'STM',RAND());
|
INSERT INTO test.t2 VALUES ('gone',NULL,'STM',RAND());
|
||||||
END|
|
END|
|
||||||
CALL test.p1();
|
CALL test.p1();
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP PROCEDURE IF EXISTS test.p2;
|
DROP PROCEDURE IF EXISTS test.p2;
|
||||||
DROP PROCEDURE IF EXISTS test.p3;
|
DROP PROCEDURE IF EXISTS test.p3;
|
||||||
@ -67,3 +66,5 @@ DROP PROCEDURE IF EXISTS test.p6;
|
|||||||
DROP PROCEDURE IF EXISTS test.p7;
|
DROP PROCEDURE IF EXISTS test.p7;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP PROCEDURE IF EXISTS test.p2;
|
DROP PROCEDURE IF EXISTS test.p2;
|
||||||
DROP PROCEDURE IF EXISTS test.p3;
|
DROP PROCEDURE IF EXISTS test.p3;
|
||||||
|
create user user1@localhost;
|
||||||
grant usage on *.* to user1@localhost;
|
grant usage on *.* to user1@localhost;
|
||||||
flush privileges;
|
flush privileges;
|
||||||
SELECT CURRENT_USER();
|
SELECT CURRENT_USER();
|
||||||
@ -21,9 +19,10 @@ CREATE PROCEDURE test.p3 () SQL SECURITY INVOKER CALL test.p1();
|
|||||||
GRANT EXECUTE ON PROCEDURE p1 TO user1@localhost;
|
GRANT EXECUTE ON PROCEDURE p1 TO user1@localhost;
|
||||||
GRANT EXECUTE ON PROCEDURE p2 TO user1@localhost;
|
GRANT EXECUTE ON PROCEDURE p2 TO user1@localhost;
|
||||||
GRANT EXECUTE ON PROCEDURE p3 TO user1@localhost;
|
GRANT EXECUTE ON PROCEDURE p3 TO user1@localhost;
|
||||||
|
set sql_mode=default;
|
||||||
<******** Master user1 p3 & p2 calls *******>
|
connection slave;
|
||||||
----------------------------------------------
|
connect muser1,localhost,user1,,;
|
||||||
|
connection muser1;
|
||||||
SELECT CURRENT_USER();
|
SELECT CURRENT_USER();
|
||||||
CURRENT_USER()
|
CURRENT_USER()
|
||||||
user1@localhost
|
user1@localhost
|
||||||
@ -36,9 +35,9 @@ user1@localhost user1@localhost
|
|||||||
CALL test.p2();
|
CALL test.p2();
|
||||||
CURRENT_USER() USER()
|
CURRENT_USER() USER()
|
||||||
root@localhost user1@localhost
|
root@localhost user1@localhost
|
||||||
|
connect suser1,127.0.0.1,user1,,test,$SLAVE_MYPORT,;
|
||||||
<******** Slave user1 p3 & p2 calls *******>
|
connection master;
|
||||||
---------------------------------------------
|
connection suser1;
|
||||||
SELECT CURRENT_USER();
|
SELECT CURRENT_USER();
|
||||||
CURRENT_USER()
|
CURRENT_USER()
|
||||||
user1@localhost
|
user1@localhost
|
||||||
@ -51,9 +50,12 @@ user1@localhost user1@localhost
|
|||||||
CALL test.p2();
|
CALL test.p2();
|
||||||
CURRENT_USER() USER()
|
CURRENT_USER() USER()
|
||||||
root@localhost user1@localhost
|
root@localhost user1@localhost
|
||||||
|
connection master;
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP PROCEDURE IF EXISTS test.p3;
|
DROP PROCEDURE IF EXISTS test.p3;
|
||||||
DROP PROCEDURE IF EXISTS test.p2;
|
DROP PROCEDURE IF EXISTS test.p2;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
DROP USER 'user1'@'localhost';
|
DROP USER user1@localhost;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1 (a int not null auto_increment primary key, b int, key(b));
|
create table t1 (a int not null auto_increment primary key, b int, key(b));
|
||||||
stop slave;
|
connection slave;
|
||||||
|
include/stop_slave.inc
|
||||||
|
connection master;
|
||||||
INSERT INTO t1 (a) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
INSERT INTO t1 (a) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
|
||||||
INSERT INTO t1 (a) SELECT null FROM t1;
|
INSERT INTO t1 (a) SELECT null FROM t1;
|
||||||
INSERT INTO t1 (a) SELECT null FROM t1;
|
INSERT INTO t1 (a) SELECT null FROM t1;
|
||||||
@ -20,7 +19,9 @@ INSERT INTO t1 (a) SELECT null FROM t1;
|
|||||||
INSERT INTO t1 (a) SELECT null FROM t1;
|
INSERT INTO t1 (a) SELECT null FROM t1;
|
||||||
INSERT INTO t1 (a) SELECT null FROM t1;
|
INSERT INTO t1 (a) SELECT null FROM t1;
|
||||||
INSERT INTO t1 (a) SELECT null FROM t1;
|
INSERT INTO t1 (a) SELECT null FROM t1;
|
||||||
start slave;
|
connection slave;
|
||||||
stop slave;
|
include/start_slave.inc
|
||||||
|
include/stop_slave.inc
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -1,14 +1,10 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
CREATE TABLE test.t1 (n MEDIUMINT NOT NULL, d DATETIME, PRIMARY KEY(n));
|
CREATE TABLE test.t1 (n MEDIUMINT NOT NULL, d DATETIME, PRIMARY KEY(n));
|
||||||
CREATE TABLE test.t2 (n MEDIUMINT NOT NULL AUTO_INCREMENT, f FLOAT, d DATETIME, PRIMARY KEY(n));
|
CREATE TABLE test.t2 (n MEDIUMINT NOT NULL AUTO_INCREMENT, f FLOAT, d DATETIME, PRIMARY KEY(n));
|
||||||
CREATE TABLE test.t3 (n MEDIUMINT NOT NULL AUTO_INCREMENT, d DATETIME, PRIMARY KEY(n));
|
CREATE TABLE test.t3 (n MEDIUMINT NOT NULL AUTO_INCREMENT, d DATETIME, PRIMARY KEY(n));
|
||||||
INSERT INTO test.t1 VALUES (1,NOW());
|
INSERT INTO test.t1 VALUES (1,NOW());
|
||||||
CREATE TRIGGER test.t2_ai AFTER INSERT ON test.t2 FOR EACH ROW UPDATE test.t1 SET d=NOW() where n = 1;//
|
CREATE TRIGGER test.t2_ai AFTER INSERT ON test.t2 FOR EACH ROW UPDATE test.t1 SET d=NOW() where n = 1//
|
||||||
CREATE PROCEDURE test.p3()
|
CREATE PROCEDURE test.p3()
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO test.t3 (d) VALUES (NOW());
|
INSERT INTO test.t3 (d) VALUES (NOW());
|
||||||
@ -18,9 +14,15 @@ CREATE PROCEDURE test.p2()
|
|||||||
BEGIN
|
BEGIN
|
||||||
INSERT INTO test.t2 (f,d) VALUES (RAND(),NOW());
|
INSERT INTO test.t2 (f,d) VALUES (RAND(),NOW());
|
||||||
END//
|
END//
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
connection master;
|
||||||
|
INSERT INTO test.t1 VALUES (1+1, NOW());
|
||||||
|
connection slave;
|
||||||
|
|
||||||
<End test section 2 (Tiggers & SP)>
|
<End test section 2 (Tiggers & SP)>
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
connection master;
|
||||||
DROP PROCEDURE test.p2;
|
DROP PROCEDURE test.p2;
|
||||||
DROP PROCEDURE test.p3;
|
DROP PROCEDURE test.p3;
|
||||||
DROP TRIGGER test.t2_ai;
|
DROP TRIGGER test.t2_ai;
|
||||||
@ -28,3 +30,5 @@ DROP TRIGGER test.t3_bi_t2;
|
|||||||
DROP TABLE test.t1;
|
DROP TABLE test.t1;
|
||||||
DROP TABLE test.t2;
|
DROP TABLE test.t2;
|
||||||
DROP TABLE test.t3;
|
DROP TABLE test.t3;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP TRIGGER test.t2_ai;
|
DROP TRIGGER test.t2_ai;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
@ -20,6 +17,7 @@ id domain
|
|||||||
3 earthmotherwear.com
|
3 earthmotherwear.com
|
||||||
4 yahoo.com
|
4 yahoo.com
|
||||||
5 example.com
|
5 example.com
|
||||||
|
connection slave;
|
||||||
SELECT * FROM test.t1 ORDER BY id;
|
SELECT * FROM test.t1 ORDER BY id;
|
||||||
id domain
|
id domain
|
||||||
1 example.com
|
1 example.com
|
||||||
@ -27,6 +25,7 @@ id domain
|
|||||||
3 earthmotherwear.com
|
3 earthmotherwear.com
|
||||||
4 yahoo.com
|
4 yahoo.com
|
||||||
5 example.com
|
5 example.com
|
||||||
|
connection master;
|
||||||
INSERT INTO test.t3 VALUES ('Yes', 5, NULL, 'spamfilter','scan_incoming');
|
INSERT INTO test.t3 VALUES ('Yes', 5, NULL, 'spamfilter','scan_incoming');
|
||||||
INSERT INTO test.t3 VALUES ('Yes', 1, NULL, 'spamfilter','scan_incoming');
|
INSERT INTO test.t3 VALUES ('Yes', 1, NULL, 'spamfilter','scan_incoming');
|
||||||
INSERT INTO test.t2 VALUES ('Yes', 1, NULL, 'spamfilter','scan_incoming');
|
INSERT INTO test.t2 VALUES ('Yes', 1, NULL, 'spamfilter','scan_incoming');
|
||||||
@ -37,6 +36,7 @@ select * from test.t3;
|
|||||||
value domain_id mailaccount_id program keey
|
value domain_id mailaccount_id program keey
|
||||||
No 5 NULL spamfilter scan_incoming
|
No 5 NULL spamfilter scan_incoming
|
||||||
Yes 1 NULL spamfilter scan_incoming
|
Yes 1 NULL spamfilter scan_incoming
|
||||||
|
connection slave;
|
||||||
select * from test.t2;
|
select * from test.t2;
|
||||||
value domain_id mailaccount_id program keey
|
value domain_id mailaccount_id program keey
|
||||||
Yes 1 NULL spamfilter scan_incoming
|
Yes 1 NULL spamfilter scan_incoming
|
||||||
@ -44,6 +44,7 @@ select * from test.t3;
|
|||||||
value domain_id mailaccount_id program keey
|
value domain_id mailaccount_id program keey
|
||||||
No 5 NULL spamfilter scan_incoming
|
No 5 NULL spamfilter scan_incoming
|
||||||
Yes 1 NULL spamfilter scan_incoming
|
Yes 1 NULL spamfilter scan_incoming
|
||||||
|
connection master;
|
||||||
DELETE FROM test.t1 WHERE id = 1;
|
DELETE FROM test.t1 WHERE id = 1;
|
||||||
SELECT * FROM test.t1 ORDER BY id;
|
SELECT * FROM test.t1 ORDER BY id;
|
||||||
id domain
|
id domain
|
||||||
@ -51,19 +52,24 @@ id domain
|
|||||||
3 earthmotherwear.com
|
3 earthmotherwear.com
|
||||||
4 yahoo.com
|
4 yahoo.com
|
||||||
5 example.com
|
5 example.com
|
||||||
|
connection master;
|
||||||
SELECT * FROM test.t1 ORDER BY id;
|
SELECT * FROM test.t1 ORDER BY id;
|
||||||
id domain
|
id domain
|
||||||
2 mysql.com
|
2 mysql.com
|
||||||
3 earthmotherwear.com
|
3 earthmotherwear.com
|
||||||
4 yahoo.com
|
4 yahoo.com
|
||||||
5 example.com
|
5 example.com
|
||||||
|
connection slave;
|
||||||
SELECT * FROM test.t1 ORDER BY id;
|
SELECT * FROM test.t1 ORDER BY id;
|
||||||
id domain
|
id domain
|
||||||
2 mysql.com
|
2 mysql.com
|
||||||
3 earthmotherwear.com
|
3 earthmotherwear.com
|
||||||
4 yahoo.com
|
4 yahoo.com
|
||||||
5 example.com
|
5 example.com
|
||||||
|
connection master;
|
||||||
DROP TRIGGER test.t2_ai;
|
DROP TRIGGER test.t2_ai;
|
||||||
DROP TABLE test.t1;
|
DROP TABLE test.t1;
|
||||||
DROP TABLE test.t2;
|
DROP TABLE test.t2;
|
||||||
DROP TABLE test.t3;
|
DROP TABLE test.t3;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP TRIGGER test.t1_bi;
|
DROP TRIGGER test.t1_bi;
|
||||||
DROP TRIGGER test.t2_ai;
|
DROP TRIGGER test.t2_ai;
|
||||||
DROP TRIGGER test.t1_bu;
|
DROP TRIGGER test.t1_bu;
|
||||||
@ -69,15 +66,11 @@ INSERT INTO test.t2 VALUES(NULL,0,'Testing MySQL databases is a cool ', 'MySQL C
|
|||||||
UPDATE test.t1 SET b1 = 0 WHERE b1 = 1;
|
UPDATE test.t1 SET b1 = 0 WHERE b1 = 1;
|
||||||
INSERT INTO test.t2 VALUES(NULL,1,'This is an after update test.', 'If this works, total will not be zero on the master or slave',1.4321,5.221,0,YEAR(NOW()),NOW());
|
INSERT INTO test.t2 VALUES(NULL,1,'This is an after update test.', 'If this works, total will not be zero on the master or slave',1.4321,5.221,0,YEAR(NOW()),NOW());
|
||||||
UPDATE test.t2 SET b1 = 0 WHERE b1 = 1;
|
UPDATE test.t2 SET b1 = 0 WHERE b1 = 1;
|
||||||
Warnings:
|
|
||||||
Error 1329 No data - zero rows fetched, selected, or processed
|
|
||||||
INSERT INTO test.t1 VALUES(NULL,1,'add some more test data test.', 'and hope for the best', 3.321,5.221,0,YEAR(NOW()),NOW());
|
INSERT INTO test.t1 VALUES(NULL,1,'add some more test data test.', 'and hope for the best', 3.321,5.221,0,YEAR(NOW()),NOW());
|
||||||
DELETE FROM test.t1 WHERE id = 1;
|
DELETE FROM test.t1 WHERE id = 1;
|
||||||
Warnings:
|
|
||||||
Error 1329 No data - zero rows fetched, selected, or processed
|
|
||||||
DELETE FROM test.t2 WHERE id = 1;
|
DELETE FROM test.t2 WHERE id = 1;
|
||||||
Warnings:
|
connection slave;
|
||||||
Error 1329 No data - zero rows fetched, selected, or processed
|
connection master;
|
||||||
DROP TRIGGER test.t1_bi;
|
DROP TRIGGER test.t1_bi;
|
||||||
DROP TRIGGER test.t2_ai;
|
DROP TRIGGER test.t2_ai;
|
||||||
DROP TRIGGER test.t1_bu;
|
DROP TRIGGER test.t1_bu;
|
||||||
@ -87,3 +80,5 @@ DROP TRIGGER test.t2_ad;
|
|||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
DROP TABLE IF EXISTS test.t3;
|
DROP TABLE IF EXISTS test.t3;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -6,15 +6,14 @@ INSERT INTO t1 VALUES (1),(2),(3),(4);
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t2(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
CREATE TABLE t2(n INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||||
INSERT INTO t2 VALUES (1),(2);
|
INSERT INTO t2 VALUES (1),(2);
|
||||||
connection slave;
|
|
||||||
connection master;
|
|
||||||
INSERT INTO t2 VALUES (3),(4);
|
INSERT INTO t2 VALUES (3),(4);
|
||||||
DROP TABLE t2;
|
DROP TABLE t2;
|
||||||
connection slave;
|
connection slave;
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
RESET SLAVE;
|
RESET SLAVE;
|
||||||
|
CHANGE MASTER TO MASTER_USER='root', MASTER_CONNECT_RETRY=1, MASTER_HOST='127.0.0.1', MASTER_PORT=MASTER_MYPORT;
|
||||||
connection slave;
|
connection slave;
|
||||||
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=master_pos_drop_t1
|
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=master_pos_drop_t1;
|
||||||
include/wait_for_slave_sql_to_stop.inc
|
include/wait_for_slave_sql_to_stop.inc
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
n
|
n
|
||||||
@ -23,7 +22,7 @@ n
|
|||||||
3
|
3
|
||||||
4
|
4
|
||||||
include/check_slave_param.inc [Exec_Master_Log_Pos]
|
include/check_slave_param.inc [Exec_Master_Log_Pos]
|
||||||
START SLAVE UNTIL MASTER_LOG_FILE='master-no-such-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS;
|
START SLAVE UNTIL MASTER_LOG_FILE='master-no-such-bin.000001', MASTER_LOG_POS=291;
|
||||||
include/wait_for_slave_sql_to_stop.inc
|
include/wait_for_slave_sql_to_stop.inc
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
n
|
n
|
||||||
@ -32,19 +31,12 @@ n
|
|||||||
3
|
3
|
||||||
4
|
4
|
||||||
include/check_slave_param.inc [Exec_Master_Log_Pos]
|
include/check_slave_param.inc [Exec_Master_Log_Pos]
|
||||||
START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', RELAY_LOG_POS=relay_pos_insert1_t2
|
|
||||||
include/wait_for_slave_sql_to_stop.inc
|
|
||||||
SELECT * FROM t2;
|
|
||||||
n
|
|
||||||
1
|
|
||||||
2
|
|
||||||
include/check_slave_param.inc [Exec_Master_Log_Pos]
|
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
include/wait_for_slave_to_start.inc
|
include/wait_for_slave_to_start.inc
|
||||||
connection master;
|
connection master;
|
||||||
connection slave;
|
connection slave;
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
START SLAVE SQL_THREAD UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=master_pos_create_t2
|
START SLAVE SQL_THREAD UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=master_pos_create_t2;
|
||||||
include/wait_for_slave_param.inc [Until_Log_Pos]
|
include/wait_for_slave_param.inc [Until_Log_Pos]
|
||||||
include/wait_for_slave_sql_to_stop.inc
|
include/wait_for_slave_sql_to_stop.inc
|
||||||
include/check_slave_param.inc [Exec_Master_Log_Pos]
|
include/check_slave_param.inc [Exec_Master_Log_Pos]
|
||||||
@ -58,10 +50,25 @@ START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000009';
|
|||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', MASTER_LOG_POS=MASTER_LOG_POS;
|
START SLAVE UNTIL RELAY_LOG_FILE='slave-relay-bin.000002', MASTER_LOG_POS=MASTER_LOG_POS;
|
||||||
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
ERROR HY000: Incorrect parameter or combination of parameters for START SLAVE UNTIL
|
||||||
START SLAVE;
|
|
||||||
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS;
|
START SLAVE UNTIL MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=MASTER_LOG_POS;
|
||||||
Warnings:
|
|
||||||
Note 1254 Slave is already running
|
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
RESET SLAVE;
|
RESET SLAVE;
|
||||||
|
include/start_slave.inc
|
||||||
|
include/rpl_reset.inc
|
||||||
|
connection master;
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
connection slave;
|
||||||
|
include/stop_slave_sql.inc
|
||||||
|
connection master;
|
||||||
|
INSERT INTO t1 VALUES (2);
|
||||||
|
INSERT INTO t1 VALUES (3);
|
||||||
|
include/sync_slave_io_with_master.inc
|
||||||
|
start slave until relay_log_file='slave-relay-bin.000002', relay_log_pos=relay_log_pos;
|
||||||
|
include/wait_for_slave_sql_to_stop.inc
|
||||||
|
include/assert.inc [table t1 should have two rows.]
|
||||||
|
include/start_slave.inc
|
||||||
|
connection master;
|
||||||
|
DROP TABLE t1;
|
||||||
|
connection slave;
|
||||||
include/rpl_end.inc
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create database if not exists mysqltest1;
|
create database if not exists mysqltest1;
|
||||||
DROP VIEW IF EXISTS mysqltest1.v1;
|
DROP VIEW IF EXISTS mysqltest1.v1;
|
||||||
DROP VIEW IF EXISTS mysqltest1.v2;
|
DROP VIEW IF EXISTS mysqltest1.v2;
|
||||||
@ -35,6 +32,7 @@ a c c2
|
|||||||
1 Thank GOD
|
1 Thank GOD
|
||||||
2 it is
|
2 it is
|
||||||
3 Friday TGIF
|
3 Friday TGIF
|
||||||
|
connection slave;
|
||||||
SELECT * FROM mysqltest1.v2;
|
SELECT * FROM mysqltest1.v2;
|
||||||
qty price value
|
qty price value
|
||||||
3 50 150
|
3 50 150
|
||||||
@ -45,6 +43,7 @@ a c c2
|
|||||||
1 Thank GOD
|
1 Thank GOD
|
||||||
2 it is
|
2 it is
|
||||||
3 Friday TGIF
|
3 Friday TGIF
|
||||||
|
connection master;
|
||||||
INSERT INTO mysqltest1.t5 SELECT * FROM mysqltest1.v2;
|
INSERT INTO mysqltest1.t5 SELECT * FROM mysqltest1.v2;
|
||||||
INSERT INTO mysqltest1.t3 SELECT * FROM mysqltest1.v1;
|
INSERT INTO mysqltest1.t3 SELECT * FROM mysqltest1.v1;
|
||||||
SELECT * FROM mysqltest1.t5 ORDER BY qty;
|
SELECT * FROM mysqltest1.t5 ORDER BY qty;
|
||||||
@ -57,6 +56,7 @@ a c c2
|
|||||||
1 Thank GOD
|
1 Thank GOD
|
||||||
2 it is
|
2 it is
|
||||||
3 Friday TGIF
|
3 Friday TGIF
|
||||||
|
connection slave;
|
||||||
SELECT * FROM mysqltest1.t5 ORDER BY qty;
|
SELECT * FROM mysqltest1.t5 ORDER BY qty;
|
||||||
qty price total
|
qty price total
|
||||||
3 50 150
|
3 50 150
|
||||||
@ -67,6 +67,7 @@ a c c2
|
|||||||
1 Thank GOD
|
1 Thank GOD
|
||||||
2 it is
|
2 it is
|
||||||
3 Friday TGIF
|
3 Friday TGIF
|
||||||
|
connection master;
|
||||||
INSERT INTO mysqltest1.v4 VALUES (4,'TEST');
|
INSERT INTO mysqltest1.v4 VALUES (4,'TEST');
|
||||||
SELECT * FROM mysqltest1.t1 ORDER BY a;
|
SELECT * FROM mysqltest1.t1 ORDER BY a;
|
||||||
a c
|
a c
|
||||||
@ -79,6 +80,7 @@ a c
|
|||||||
2 it
|
2 it
|
||||||
3 Friday
|
3 Friday
|
||||||
4 TEST
|
4 TEST
|
||||||
|
connection slave;
|
||||||
SELECT * FROM mysqltest1.t1 ORDER BY a;
|
SELECT * FROM mysqltest1.t1 ORDER BY a;
|
||||||
a c
|
a c
|
||||||
1 Thank
|
1 Thank
|
||||||
@ -90,6 +92,7 @@ a c
|
|||||||
2 it
|
2 it
|
||||||
3 Friday
|
3 Friday
|
||||||
4 TEST
|
4 TEST
|
||||||
|
connection master;
|
||||||
DROP VIEW IF EXISTS mysqltest1.v1;
|
DROP VIEW IF EXISTS mysqltest1.v1;
|
||||||
DROP VIEW IF EXISTS mysqltest1.v2;
|
DROP VIEW IF EXISTS mysqltest1.v2;
|
||||||
DROP VIEW IF EXISTS mysqltest1.v3;
|
DROP VIEW IF EXISTS mysqltest1.v3;
|
||||||
@ -99,3 +102,5 @@ DROP TABLE IF EXISTS mysqltest1.t1;
|
|||||||
DROP TABLE IF EXISTS mysqltest1.t2;
|
DROP TABLE IF EXISTS mysqltest1.t2;
|
||||||
DROP TABLE IF EXISTS mysqltest1.t4;
|
DROP TABLE IF EXISTS mysqltest1.t4;
|
||||||
DROP DATABASE mysqltest1;
|
DROP DATABASE mysqltest1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection slave;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1 (n int);
|
create table t1 (n int);
|
||||||
reset master;
|
reset master;
|
||||||
stop slave;
|
include/stop_slave.inc
|
||||||
change master to master_port=SLAVE_PORT;
|
change master to master_port=SLAVE_PORT;
|
||||||
show slave status;
|
show slave status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running 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 Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed 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 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running 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 Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed 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 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Master_SSL_Crl Master_SSL_Crlpath Using_Gtid Gtid_IO_Pos Replicate_Do_Domain_Ids Replicate_Ignore_Domain_Ids Parallel_Mode SQL_Delay SQL_Remaining_Delay Slave_SQL_Running_State Slave_DDL_Groups Slave_Non_Transactional_Groups Slave_Transactional_Groups
|
||||||
127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # # 0 0 0 107 None 0 No NULL No 0 0 1
|
127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # # 0 0 0 256 None 0 No NULL No 0 0 1 No conservative 0 NULL 0 0 0
|
||||||
start slave;
|
start slave;
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
show status like "slave_running";
|
include/wait_for_slave_param.inc [Last_IO_Errno]
|
||||||
Variable_name Value
|
Last_IO_Errno = '1593'
|
||||||
Slave_running OFF
|
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).'
|
||||||
|
include/stop_slave.inc
|
||||||
|
reset slave;
|
||||||
|
reset master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -1,21 +1,38 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection slave;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1 (n int);
|
create table t1 (n int);
|
||||||
reset master;
|
reset master;
|
||||||
stop slave;
|
stop slave;
|
||||||
|
include/wait_for_slave_to_stop.inc
|
||||||
change master to master_port=SLAVE_PORT;
|
change master to master_port=SLAVE_PORT;
|
||||||
show slave status;
|
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running 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 Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed 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 Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id
|
|
||||||
127.0.0.1 root SLAVE_PORT 1 4 slave-relay-bin.000001 4 No No # 0 0 0 107 None 0 No NULL No 0 0 1
|
|
||||||
start slave;
|
start slave;
|
||||||
|
include/wait_for_slave_to_start.inc
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
select * from t1;
|
select * from t1;
|
||||||
n
|
n
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
stop slave;
|
stop slave;
|
||||||
|
include/wait_for_slave_to_stop.inc
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection master;
|
||||||
|
reset master;
|
||||||
|
create table t1(n int);
|
||||||
|
create table t2(n int);
|
||||||
|
connection slave;
|
||||||
|
change master to master_port=MASTER_PORT;
|
||||||
|
start slave until master_log_file='master-bin.000001', master_log_pos=UNTIL_POS;
|
||||||
|
include/wait_for_slave_io_to_start.inc
|
||||||
|
include/wait_for_slave_sql_to_stop.inc
|
||||||
|
*** checking until position execution: must be only t1 in the list ***
|
||||||
|
show tables;
|
||||||
|
Tables_in_test
|
||||||
|
t1
|
||||||
|
connection slave;
|
||||||
|
start slave sql_thread;
|
||||||
|
connection master;
|
||||||
|
drop table t1;
|
||||||
|
drop table t2;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1051 Unknown table 't1'
|
Note 1051 Unknown table 'test.t1'
|
||||||
create table t1(a varchar(100),b int);
|
create table t1(a varchar(100),b int);
|
||||||
set @@session.sql_mode=pipes_as_concat;
|
set @@session.sql_mode=pipes_as_concat;
|
||||||
insert into t1 values('My'||'SQL', 1);
|
insert into t1 values('My'||'SQL', 1);
|
||||||
@ -16,10 +12,12 @@ select * from t1 where b<3 order by a;
|
|||||||
a b
|
a b
|
||||||
1 2
|
1 2
|
||||||
MySQL 1
|
MySQL 1
|
||||||
|
connection slave;
|
||||||
select * from t1 where b<3 order by a;
|
select * from t1 where b<3 order by a;
|
||||||
a b
|
a b
|
||||||
1 2
|
1 2
|
||||||
MySQL 1
|
MySQL 1
|
||||||
|
connection master;
|
||||||
set @@session.sql_mode=ignore_space;
|
set @@session.sql_mode=ignore_space;
|
||||||
insert into t1 values(password ('MySQL'), 3);
|
insert into t1 values(password ('MySQL'), 3);
|
||||||
set @@session.sql_mode=ansi_quotes;
|
set @@session.sql_mode=ansi_quotes;
|
||||||
@ -37,7 +35,24 @@ insert into t2 select 2,a from t1 where a is null;
|
|||||||
select * from t2 order by b;
|
select * from t2 order by b;
|
||||||
b a
|
b a
|
||||||
1 1
|
1 1
|
||||||
|
connection slave;
|
||||||
select * from t2 order by b;
|
select * from t2 order by b;
|
||||||
b a
|
b a
|
||||||
1 1
|
1 1
|
||||||
|
connection master;
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
connection slave;
|
||||||
|
connection master;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
`id` int(11) NOT NULL auto_increment,
|
||||||
|
`data` varchar(100),
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1(data) VALUES(SESSION_USER());
|
||||||
|
connection slave;
|
||||||
|
SELECT length(data) < 100 FROM t1;
|
||||||
|
length(data) < 100
|
||||||
|
1
|
||||||
|
connection master;
|
||||||
|
drop table t1;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
set global log_bin_trust_function_creators=0;
|
set global log_bin_trust_function_creators=0;
|
||||||
set binlog_format=STATEMENT;
|
set binlog_format=STATEMENT;
|
||||||
create function fn16456()
|
create function fn16456()
|
||||||
@ -27,3 +23,4 @@ set binlog_format=STATEMENT;
|
|||||||
select fn16456();
|
select fn16456();
|
||||||
ERROR HY000: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
|
ERROR HY000: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
|
||||||
drop function fn16456;
|
drop function fn16456;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,16 +1,18 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
create table t1 (n int not null primary key);
|
create table t1 (n int not null primary key);
|
||||||
|
connection slave;
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
|
connection master;
|
||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
insert into t1 values (2),(3);
|
insert into t1 values (2),(3);
|
||||||
|
connection slave;
|
||||||
select * from t1 ORDER BY n;
|
select * from t1 ORDER BY n;
|
||||||
n
|
n
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
3
|
3
|
||||||
|
connection master;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
@ -1,63 +1,48 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
==== Create new replication user ====
|
||||||
reset slave;
|
connection master;
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
GRANT REPLICATION SLAVE ON *.* TO rpl@127.0.0.1 IDENTIFIED BY 'rpl';
|
||||||
start slave;
|
connection slave;
|
||||||
grant replication slave on *.* to rpl@127.0.0.1 identified by 'rpl';
|
include/stop_slave.inc
|
||||||
stop slave;
|
set @save_relay_log_purge=@@global.relay_log_purge;
|
||||||
change master to master_user='rpl',master_password='rpl';
|
set @@global.relay_log_purge=0;
|
||||||
start slave;
|
CHANGE MASTER TO master_user='rpl', master_password='rpl';
|
||||||
drop table if exists t1;
|
select @@global.relay_log_purge;
|
||||||
create table t1 (n int);
|
@@global.relay_log_purge
|
||||||
insert into t1 values (1);
|
0
|
||||||
select * from t1;
|
set @@global.relay_log_purge=1;
|
||||||
|
CHANGE MASTER TO master_user='rpl', master_password='rpl';
|
||||||
|
select @@global.relay_log_purge;
|
||||||
|
@@global.relay_log_purge
|
||||||
|
1
|
||||||
|
set @@global.relay_log_purge=@save_relay_log_purge;
|
||||||
|
CHANGE MASTER TO master_user='rpl', master_password='rpl';
|
||||||
|
include/start_slave.inc
|
||||||
|
==== Do replication as new user ====
|
||||||
|
connection master;
|
||||||
|
CREATE TABLE t1 (n INT);
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
connection slave;
|
||||||
|
SELECT * FROM t1;
|
||||||
n
|
n
|
||||||
1
|
1
|
||||||
drop user rpl@127.0.0.1;
|
==== Delete new replication user ====
|
||||||
flush privileges;
|
connection master;
|
||||||
stop slave;
|
DROP USER rpl@127.0.0.1;
|
||||||
start slave;
|
FLUSH PRIVILEGES;
|
||||||
show slave status;
|
connection slave;
|
||||||
Slave_IO_State #
|
==== Restart slave without privileges =====
|
||||||
Master_Host 127.0.0.1
|
include/stop_slave.inc
|
||||||
Master_User rpl
|
START SLAVE;
|
||||||
Master_Port MASTER_MYPORT
|
include/wait_for_slave_sql_to_start.inc
|
||||||
Connect_Retry 1
|
include/wait_for_slave_io_to_stop.inc
|
||||||
Master_Log_File master-bin.000001
|
==== Verify that Slave IO thread stopped with error ====
|
||||||
Read_Master_Log_Pos #
|
include/wait_for_slave_io_error.inc [errno=1045]
|
||||||
Relay_Log_File #
|
==== Cleanup (Note that slave IO thread is not running) ====
|
||||||
Relay_Log_Pos #
|
include/stop_slave_sql.inc
|
||||||
Relay_Master_Log_File master-bin.000001
|
CHANGE MASTER TO MASTER_USER = 'root', MASTER_PASSWORD = '';
|
||||||
Slave_IO_Running Connecting
|
include/rpl_reset.inc
|
||||||
Slave_SQL_Running Yes
|
connection master;
|
||||||
Replicate_Do_DB
|
DROP TABLE t1;
|
||||||
Replicate_Ignore_DB
|
include/rpl_end.inc
|
||||||
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 NULL
|
|
||||||
Master_SSL_Verify_Server_Cert No
|
|
||||||
Last_IO_Errno #
|
|
||||||
Last_IO_Error #
|
|
||||||
Last_SQL_Errno 0
|
|
||||||
Last_SQL_Error
|
|
||||||
Replicate_Ignore_Server_Ids
|
|
||||||
Master_Server_Id 1
|
|
||||||
drop table t1;
|
|
||||||
drop table t1;
|
|
||||||
|
477
mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff
Normal file
477
mysql-test/suite/engines/funcs/r/rpl_sp,myisam,mix.rdiff
Normal file
@ -0,0 +1,477 @@
|
|||||||
|
@@ -126,12 +126,15 @@
|
||||||
|
show warnings;
|
||||||
|
Level Code Message
|
||||||
|
Error 1062 Duplicate entry '20' for key 'a'
|
||||||
|
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||||
|
Note 4094 At line 4 in mysqltest1.foo4
|
||||||
|
select * from t2;
|
||||||
|
a
|
||||||
|
+20
|
||||||
|
connection slave;
|
||||||
|
select * from t2;
|
||||||
|
a
|
||||||
|
+20
|
||||||
|
select * from mysql.proc where name="foo4" and db='mysqltest1';
|
||||||
|
db name type specific_name language sql_data_access is_deterministic security_type param_list returns body definer created modified sql_mode comment character_set_client collation_connection db_collation body_utf8 aggregate
|
||||||
|
mysqltest1 foo4 PROCEDURE foo4 SQL CONTAINS_SQL YES DEFINER begin
|
||||||
|
@@ -171,20 +174,16 @@
|
||||||
|
insert into t2 values(fn1(21));
|
||||||
|
select * from t1;
|
||||||
|
a
|
||||||
|
-15
|
||||||
|
20
|
||||||
|
21
|
||||||
|
-5
|
||||||
|
select * from t2;
|
||||||
|
a
|
||||||
|
23
|
||||||
|
connection slave;
|
||||||
|
select * from t1;
|
||||||
|
a
|
||||||
|
-15
|
||||||
|
20
|
||||||
|
21
|
||||||
|
-5
|
||||||
|
select * from t2;
|
||||||
|
a
|
||||||
|
23
|
||||||
|
@@ -292,13 +291,18 @@
|
||||||
|
Warnings:
|
||||||
|
Error 1062 Duplicate entry '100' for key 'a'
|
||||||
|
Note 4094 At line 3 in mysqltest1.fn1
|
||||||
|
+Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||||
|
select fn1(20);
|
||||||
|
ERROR 23000: Duplicate entry '20' for key 'a'
|
||||||
|
select * from t2;
|
||||||
|
a
|
||||||
|
+20
|
||||||
|
+100
|
||||||
|
connection slave;
|
||||||
|
select * from t2;
|
||||||
|
a
|
||||||
|
+20
|
||||||
|
+100
|
||||||
|
connection con1;
|
||||||
|
create trigger trg before insert on t1 for each row set new.a= 10;
|
||||||
|
ERROR 42000: TRIGGER command denied to user 'zedjzlcsjhd'@'localhost' for table 't1'
|
||||||
|
@@ -472,13 +476,13 @@
|
||||||
|
end
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values ( NAME_CONST('b',8))
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values (unix_timestamp())
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; delete from t1
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` PROCEDURE `foo2`()
|
||||||
|
select * from mysqltest1.t1
|
||||||
|
@@ -509,24 +513,24 @@
|
||||||
|
end
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; insert into t2 values(3)
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values (15)
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; insert into t2 values(3)
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; alter procedure foo4 sql security invoker
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; insert into t2 values(3)
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values (5)
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; delete from t2
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; alter table t2 add unique (a)
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
@@ -537,6 +541,9 @@
|
||||||
|
begin
|
||||||
|
insert into t2 values(20),(20);
|
||||||
|
end
|
||||||
|
+master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
+master-bin.000001 # Query # # use `mysqltest1`; insert into t2 values(20),(20)
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; drop procedure foo4
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
@@ -557,10 +564,10 @@
|
||||||
|
master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; SELECT `mysqltest1`.`fn1`(20)
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; insert into t2 values(fn1(21))
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; drop function fn1
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
@@ -571,10 +578,10 @@
|
||||||
|
end
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; delete from t1
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values(fn1())
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; CREATE DEFINER=`zedjzlcsjhd`@`127.0.0.1` FUNCTION `fn2`() RETURNS int(11)
|
||||||
|
NO SQL
|
||||||
|
@@ -589,7 +596,7 @@
|
||||||
|
end
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; delete from t2
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; alter table t2 add unique (a)
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
@@ -601,21 +608,27 @@
|
||||||
|
return 10;
|
||||||
|
end
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
+master-bin.000001 # Query # # use `mysqltest1`; SELECT `mysqltest1`.`fn1`(100)
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
+master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
+master-bin.000001 # Query # # use `mysqltest1`; SELECT `mysqltest1`.`fn1`(20)
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
+master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; delete from t1
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` trigger trg before insert on t1 for each row set new.a= 10
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values (1)
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; delete from t1
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; drop trigger trg
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; insert into t1 values (1)
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest1`; CREATE DEFINER=`root`@`localhost` PROCEDURE `foo`()
|
||||||
|
READS SQL DATA
|
||||||
|
@@ -647,7 +660,7 @@
|
||||||
|
master-bin.000001 # Query # # use `test`; create table t1 (a int)
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `test`; insert into t1 (a) values (f1())
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `test`; drop view v1
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
@@ -663,7 +676,7 @@
|
||||||
|
INSERT INTO t1 VALUES(arg)
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test' COLLATE 'latin1_swedish_ci'))
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `test`; DROP PROCEDURE p1
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
@@ -697,7 +710,7 @@
|
||||||
|
begin end
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest2`; insert into t values ( 1 )
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
master-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest2`; CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
|
||||||
|
begin
|
||||||
|
@@ -706,7 +719,7 @@
|
||||||
|
end
|
||||||
|
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
master-bin.000001 # Query # # use `mysqltest`; SELECT `mysqltest2`.`f1`()
|
||||||
|
-master-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
+master-bin.000001 # Query # # COMMIT
|
||||||
|
connection slave;
|
||||||
|
set @@global.log_bin_trust_function_creators= @old_log_bin_trust_function_creators;
|
||||||
|
connection master;
|
||||||
|
@@ -801,19 +814,25 @@
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
insert into t1 values ( NAME_CONST('b',8))
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
START TRANSACTION
|
||||||
|
/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
insert into t1 values (unix_timestamp())
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
START TRANSACTION
|
||||||
|
/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
delete from t1
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `foo2`()
|
||||||
|
select * from mysqltest1.t1
|
||||||
|
@@ -858,21 +877,27 @@
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
insert into t2 values(3)
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
START TRANSACTION
|
||||||
|
/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
SET @@session.sql_mode=0/*!*/;
|
||||||
|
insert into t1 values (15)
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
START TRANSACTION
|
||||||
|
/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
SET @@session.sql_mode=1411383296/*!*/;
|
||||||
|
insert into t2 values(3)
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
SET @@session.sql_mode=0/*!*/;
|
||||||
|
alter procedure foo4 sql security invoker
|
||||||
|
@@ -883,20 +908,26 @@
|
||||||
|
SET @@session.sql_mode=1411383296/*!*/;
|
||||||
|
insert into t2 values(3)
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
START TRANSACTION
|
||||||
|
/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
insert into t1 values (5)
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
START TRANSACTION
|
||||||
|
/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
SET @@session.sql_mode=0/*!*/;
|
||||||
|
delete from t2
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
alter table t2 add unique (a)
|
||||||
|
/*!*/;
|
||||||
|
@@ -910,6 +941,14 @@
|
||||||
|
insert into t2 values(20),(20);
|
||||||
|
end
|
||||||
|
/*!*/;
|
||||||
|
+START TRANSACTION
|
||||||
|
+/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+insert into t2 values(20),(20)
|
||||||
|
+/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
drop procedure foo4
|
||||||
|
/*!*/;
|
||||||
|
@@ -943,13 +982,17 @@
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
SELECT `mysqltest1`.`fn1`(20)
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
START TRANSACTION
|
||||||
|
/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
insert into t2 values(fn1(21))
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
drop function fn1
|
||||||
|
/*!*/;
|
||||||
|
@@ -965,13 +1008,17 @@
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
delete from t1
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
START TRANSACTION
|
||||||
|
/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
insert into t1 values(fn1())
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
SET @@session.sql_mode=1411383296/*!*/;
|
||||||
|
CREATE DEFINER=`zedjzlcsjhd`@`127.0.0.1` FUNCTION `fn2`() RETURNS int(11)
|
||||||
|
@@ -993,7 +1040,9 @@
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
delete from t2
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
alter table t2 add unique (a)
|
||||||
|
/*!*/;
|
||||||
|
@@ -1010,9 +1059,27 @@
|
||||||
|
START TRANSACTION
|
||||||
|
/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
+SELECT `mysqltest1`.`fn1`(100)
|
||||||
|
+/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
+START TRANSACTION
|
||||||
|
+/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+SELECT `mysqltest1`.`fn1`(20)
|
||||||
|
+/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
+START TRANSACTION
|
||||||
|
+/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
delete from t1
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
CREATE DEFINER=`root`@`localhost` trigger trg before insert on t1 for each row set new.a= 10
|
||||||
|
/*!*/;
|
||||||
|
@@ -1021,13 +1088,17 @@
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
insert into t1 values (1)
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
START TRANSACTION
|
||||||
|
/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
delete from t1
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
drop trigger trg
|
||||||
|
/*!*/;
|
||||||
|
@@ -1036,7 +1107,9 @@
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
insert into t1 values (1)
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
CREATE DEFINER=`root`@`localhost` PROCEDURE `foo`()
|
||||||
|
READS SQL DATA
|
||||||
|
@@ -1081,7 +1154,9 @@
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
insert into t1 (a) values (f1())
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
drop view v1
|
||||||
|
/*!*/;
|
||||||
|
@@ -1106,7 +1181,9 @@
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
INSERT INTO t1 VALUES( NAME_CONST('arg',_latin1'test' COLLATE 'latin1_swedish_ci'))
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
DROP PROCEDURE p1
|
||||||
|
/*!*/;
|
||||||
|
@@ -1158,7 +1235,9 @@
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
insert into t values ( 1 )
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
CREATE DEFINER=`root`@`localhost` FUNCTION `f1`() RETURNS int(11)
|
||||||
|
begin
|
||||||
|
@@ -1172,7 +1251,9 @@
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
SELECT `mysqltest2`.`f1`()
|
||||||
|
/*!*/;
|
||||||
|
-COMMIT/*!*/;
|
||||||
|
+SET TIMESTAMP=t/*!*/;
|
||||||
|
+COMMIT
|
||||||
|
+/*!*/;
|
||||||
|
SET TIMESTAMP=t/*!*/;
|
||||||
|
drop database mysqltest
|
||||||
|
/*!*/;
|
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,6 @@
|
|||||||
stop slave;
|
include/master-slave.inc
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
[connection master]
|
||||||
reset master;
|
connection master;
|
||||||
reset slave;
|
|
||||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
||||||
start slave;
|
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP PROCEDURE IF EXISTS test.p2;
|
DROP PROCEDURE IF EXISTS test.p2;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
@ -38,6 +35,7 @@ a
|
|||||||
2
|
2
|
||||||
3
|
3
|
||||||
8
|
8
|
||||||
|
connection slave;
|
||||||
SELECT * FROM test.t1 ORDER BY a;
|
SELECT * FROM test.t1 ORDER BY a;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
@ -50,15 +48,18 @@ a
|
|||||||
2
|
2
|
||||||
3
|
3
|
||||||
8
|
8
|
||||||
|
connection master;
|
||||||
CALL test.p2();
|
CALL test.p2();
|
||||||
USE test;
|
USE test;
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t3
|
t3
|
||||||
|
connection slave;
|
||||||
USE test;
|
USE test;
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
Tables_in_test
|
Tables_in_test
|
||||||
t3
|
t3
|
||||||
|
connection master;
|
||||||
CALL test.p1();
|
CALL test.p1();
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1050 Table 't3' already exists
|
Note 1050 Table 't3' already exists
|
||||||
@ -74,6 +75,7 @@ a
|
|||||||
2
|
2
|
||||||
3
|
3
|
||||||
8
|
8
|
||||||
|
connection slave;
|
||||||
SELECT * FROM test.t1 ORDER BY a;
|
SELECT * FROM test.t1 ORDER BY a;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
@ -86,8 +88,11 @@ a
|
|||||||
2
|
2
|
||||||
3
|
3
|
||||||
8
|
8
|
||||||
|
connection master;
|
||||||
DROP PROCEDURE IF EXISTS test.p1;
|
DROP PROCEDURE IF EXISTS test.p1;
|
||||||
DROP PROCEDURE IF EXISTS test.p2;
|
DROP PROCEDURE IF EXISTS test.p2;
|
||||||
DROP TABLE IF EXISTS test.t1;
|
DROP TABLE IF EXISTS test.t1;
|
||||||
DROP TABLE IF EXISTS test.t2;
|
DROP TABLE IF EXISTS test.t2;
|
||||||
DROP TABLE IF EXISTS test.t3;
|
DROP TABLE IF EXISTS test.t3;
|
||||||
|
connection slave;
|
||||||
|
include/rpl_end.inc
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user