mirror of
https://github.com/MariaDB/server.git
synced 2025-11-24 06:01:25 +03:00
Some of the test cases reference to binlog position and these position numbers are written into result explicitly. It is difficult to maintain if log event format changes. There are a couple of cases explicit position number appears, we handle them in different ways A. 'CHANGE MASTER ...' with MASTER_LOG_POS or/and RELAY_LOG_POS options Use --replace_result to mask them. B. 'SHOW BINLOG EVENT ...' Replaced by show_binlog_events.inc or wait_for_binlog_event.inc. show_binlog_events.inc file's function is enhanced by given $binlog_file and $binlog_limit. C. 'SHOW SLAVE STATUS', 'show_slave_status.inc' and 'show_slave_status2.inc' For the test cases just care a few items in the result of 'SHOW SLAVE STATUS', only the items related to each test case are showed. 'show_slave_status.inc' is rebuild, only the given items in $status_items will be showed. 'check_slave_is_running.inc' and 'check_slave_no_error.inc' and 'check_slave_param.inc' are auxiliary files helping to show running status and error information easily. mysql-test/extra/binlog_tests/binlog.test: It only cares whether current binlog file index is changed, so it is ok with 'show_master_status.inc' instead of 'show mater status'. mysql-test/extra/binlog_tests/blackhole.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/extra/rpl_tests/rpl_deadlock.test: Use 'check_slave_is_running.inc' instead of 'show_slave_status2.inc'. mysql-test/extra/rpl_tests/rpl_extraMaster_Col.test: Use 'check_slave_is_running.inc' instead of 'show slave status' statement. mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test: Use 'wait_for_slave_sql_error.inc' and 'ait_for_slave_sql_error_and_skip.inc' instead of 'show slave status'. mysql-test/extra/rpl_tests/rpl_flsh_tbls.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/extra/rpl_tests/rpl_get_master_version_and_clock.test: It is need now to give a error number, so use 'wait_for_slave_io_to_stop.inc' instead of 'wait_for_slave_io_error.inc'. mysql-test/extra/rpl_tests/rpl_insert_delayed.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/extra/rpl_tests/rpl_log.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. se 'check_slave_is_running.inc' instead of 'show slave status' statement. mysql-test/extra/rpl_tests/rpl_max_relay_size.test: se 'check_slave_is_running.inc' instead of 'show slave status' statement. mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/extra/rpl_tests/rpl_reset_slave.test: Use 'show_slave_status.inc' instead of 'show_slave_status2.inc' statement. Use 'check_slave_no_error.inc' to simplify the check that there is no error. mysql-test/extra/rpl_tests/rpl_row_basic.test: Use 'check_slave_is_running.inc' to verify that Slave threads are running well. Use 'wait_for_slave_sql_error.inc' to wait the given sql thread error happening. mysql-test/extra/rpl_tests/rpl_row_tabledefs.test: Use 'show_slave_error_status_and_skip.inc' instead of 'show slave status'. mysql-test/include/check_slave_is_running.inc: To make sure both sql and io thread are running well. If not, the test will be aborted. mysql-test/include/check_slave_no_error.inc: To make sure both sql and io thread have no error. If not, the test will be aborted. mysql-test/include/get_relay_log_pos.inc: According to the position of a log event in master binlog file, find the peer position of a log event in relay log file. mysql-test/include/rpl_stmt_seq.inc: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/include/show_binlog_events.inc: Add two options $binlog_file and $binlog_limit for showing binlog events from different binlog files or/and given different limits on position or row number. mysql-test/include/show_rpl_debug_info.inc: Add 'SELECT NOW()' in the debug information. mysql-test/include/show_slave_status.inc: It's more clean and tidy Only the given columns of slave status are printed. mysql-test/include/test_fieldsize.inc: Use 'wait_for_slave_sql_error.inc' to wait the given sql thread error happening. There is no need to print the result of 'show slave stutus'. mysql-test/include/wait_for_binlog_event.inc: Use show_rpl_debug_info.inc instead of 'SHOW BINLOG EVENTS'. mysql-test/include/wait_for_slave_io_error.inc: Add $slave_io_errno and $show_slave_io_error, it waits only a given error. mysql-test/include/wait_for_slave_param.inc: Use die instead of exit. mysql-test/include/wait_for_slave_sql_error.inc: Add $slave_sql_errno and $show_slave_sql_error, it waits only a given error. mysql-test/include/wait_for_status_var.inc: Use die instead of exit. mysql-test/r/flush_block_commit_notembedded.result: It checks whether somethings are binlogged, so we using 'show_binlog_event.inc' instead of 'show master status'. mysql-test/r/multi_update.result: It checks whether somethings are binlogged, so we using 'show_binlog_event.inc' instead of 'show master status'. mysql-test/suite/binlog/r/binlog_innodb.result: It checks whether somethings are binlogged, so we using 'show_binlog_event.inc' instead of 'show master status'. mysql-test/suite/binlog/r/binlog_row_binlog.result: Position in the result of 'show master status' is replaced by '#'. mysql-test/suite/binlog/r/binlog_stm_binlog.result: Position in the result of 'show master status' is replaced by '#'. mysql-test/suite/binlog/t/binlog_innodb.test: It checks whether somethings are binlogged, so we use 'show_binlog_event.inc' instead of 'show master status'. mysql-test/suite/binlog/t/binlog_stm_binlog.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/bugs/r/rpl_bug36391.result: Position in the result of 'show master status' is replaced by '#'. mysql-test/suite/bugs/t/rpl_bug12691.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/bugs/t/rpl_bug36391.test: 'show master status' is replaced by 'show_master_status.inc'. Position in the result of 'show master status' is replaced by '#'. mysql-test/suite/engines/funcs/r/rpl_000015.result: It checks whether somethings are binlogged, so we using 'show_binlog_event.inc' instead of 'show master status'. mysql-test/suite/engines/funcs/t/rpl_000015.test: Use 'check_slave_is_running.inc' to verify that Slave threads are running well. mysql-test/suite/engines/funcs/t/rpl_REDIRECT.test: Use 'query_vertical SHOW SLAVE STATUS' instead of 'show slave status'. There is no status columns in the result file, for no slave exists on master's server. mysql-test/suite/engines/funcs/t/rpl_change_master.test: This test just care whether Read_Master_Log_Pos is equal to Exec_Master_Log_Pos after 'CHANGE MASTER ..'. So 'show slave status' is removed and just check the value of Read_Master_Log_Pos and Exec_Master_Log_Pos. mysql-test/suite/engines/funcs/t/rpl_empty_master_crash.test: We doesn't really need the statement. mysql-test/suite/engines/funcs/t/rpl_flushlog_loop.test: Just show Relay_Log_File, running status and error informations. Use 'check_slave_is_running.inc' to verify that Slave threads are running well. mysql-test/suite/engines/funcs/t/rpl_loaddata_s.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/engines/funcs/t/rpl_log_pos.test: Mask the explicit positions in the result file. Use 'check_slave_no_error.inc' to simplify the check that there is no error. Use 'wait_for_slave_sql_error.inc' to wait the given sql thread error happening. There is no need to print the result of 'show slave stutus'. mysql-test/suite/engines/funcs/t/rpl_rbr_to_sbr.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/engines/funcs/t/rpl_row_drop.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/engines/funcs/t/rpl_row_inexist_tbl.test: Use 'wait_for_slave_sql_error.inc' to wait the given sql thread error happening. There is no need to print the result of 'show slave stutus'. mysql-test/suite/engines/funcs/t/rpl_row_until.test: Use 'check_slave_param.inc' to check whether SQL Thread stop at a right position, and use binlog position variables instead of explicit number in the 'CHANGE MASTER' statements. Mask the explicit binary log positions in the result file. mysql-test/suite/engines/funcs/t/rpl_server_id1.test: Use 'wait_for_slave_sql_error.inc' to wait the given sql thread error happening. There is no need to print the result of 'show slave stutus'. Use 'check_slave_no_error.inc' to simplify the check that there is no error. mysql-test/suite/engines/funcs/t/rpl_server_id2.test: It doesn't really need in this test. mysql-test/suite/engines/funcs/t/rpl_slave_status.test: Use 'wait_for_slave_sql_error.inc' to wait the given sql thread error happening. There is no need to print the result of 'show slave stutus'. mysql-test/suite/engines/funcs/t/rpl_switch_stm_row_mixed.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/manual/t/rpl_replication_delay.test: Use 'show_slave_status.inc' instead of 'show slave status'. mysql-test/suite/parts/t/rpl_partition.test: Use 'check_slave_is_running.inc' instead of 'show slave status' statement. mysql-test/suite/rpl/include/rpl_mixed_ddl.inc: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/rpl/include/rpl_mixed_dml.inc: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/rpl/t/rpl_000015.test: Use 'show_slave_status.inc' instead of 'show_slave_status2.inc'. mysql-test/suite/rpl/t/rpl_binlog_grant.test: Use 'wait_for_binlog_event.inc' instead of 'show binlog events' statement. mysql-test/suite/rpl/t/rpl_bug33931.test: Use 'wait_for_slave_sql_error.inc' to wait the given sql thread error happening. There is no need to print the result of 'show slave stutus'. mysql-test/suite/rpl/t/rpl_change_master.test: This test just care whether Read_Master_Log_Pos is equal to Exec_Master_Log_Pos after 'CHANGE MASTER ..'. So 'show slave status' is removed and just check the value of Read_Master_Log_Pos and Exec_Master_Log_Pos. mysql-test/suite/rpl/t/rpl_critical_errors.test: Use 'wait_for_slave_sql_error.inc' to wait the given sql thread error happening. There is no need to print the result of 'show slave stutus'. mysql-test/suite/rpl/t/rpl_dual_pos_advance.test: Mask the explicit position numbers in result file. It is restricted running on SBR, for it want to binlog 'set @a=1' statement. mysql-test/suite/rpl/t/rpl_empty_master_crash.test: It doesn't need in this test. mysql-test/suite/rpl/t/rpl_flushlog_loop.test: UUse 'check_slave_is_running.inc' and 'show_slave_status.inc' instead of 'show slave status' statement. mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test: Use 'wait_for_slave_io_error.inc' to wait the given io thread error happening. mysql-test/suite/rpl/t/rpl_grant.test: It doesn't need in this test. mysql-test/suite/rpl/t/rpl_incident.test: Use 'check_slave_is_running.inc' instead of 'show slave status' statement. mysql-test/suite/rpl/t/rpl_known_bugs_detection.test: Use 'wait_for_slave_sql_error.inc' to wait the given sql thread error happening. There is no need to print the result of 'show slave stutus'. mysql-test/suite/rpl/t/rpl_loaddata_fatal.test: Use 'wait_for_slave_sql_error_and_skip.inc' to wait the given sql thread error happening and then skip the event. There is no need to print the result of 'show slave stutus'. mysql-test/suite/rpl/t/rpl_log_pos.test: Use 'wait_for_slave_io_error.inc' to wait the given io thread error happening. There is no need to print the result of 'show slave status'. mysql-test/suite/rpl/t/rpl_rbr_to_sbr.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/rpl/t/rpl_replicate_do.test: Use 'show_slave_status.inc' instead of 'show slave status'. mysql-test/suite/rpl/t/rpl_rotate_logs.test: Use 'show_slave_status.inc' instead of 'show_slave_status2.inc'. mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/rpl/t/rpl_row_create_table.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/rpl/t/rpl_row_drop.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/rpl/t/rpl_row_until.test: Use 'check_slave_param.inc' to check whether SQL Thread stop at a right position, and use binlog position variables instead of explicit number in the 'CHANGE MASTER' statements. mysql-test/suite/rpl/t/rpl_skip_error.test: Use 'check_slave_is_running.inc' instead of 'show slave status' statement. mysql-test/suite/rpl/t/rpl_slave_load_remove_tmpfile.test: Use 'wait_for_slave_sql_error.inc' to wait the given sql thread error happening. There is no need to print the result of 'show slave status'. mysql-test/suite/rpl/t/rpl_slave_skip.test: Use 'check_slave_param.inc' to check whether SQL Thread stop at a right position, and mask the explicit position number in the 'CHANGE MASTER' statements. mysql-test/suite/rpl/t/rpl_sp.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/suite/rpl/t/rpl_ssl.test: Use 'show_slave_status.inc' instead of 'show slave status'. mysql-test/suite/rpl/t/rpl_ssl1.test: Use 'show_slave_status.inc' instead of 'show slave status'. mysql-test/suite/rpl/t/rpl_stm_until.test: Use 'check_slave_param.inc' to check whether SQL Thread stop at a right position, and use binlog position variables instead of explicit number in the 'CHANGE MASTER' statements. mysql-test/suite/rpl/t/rpl_temporary_errors.test: Use 'check_slave_is_running.inc' instead of 'show slave status' statement. mysql-test/suite/rpl_ndb/t/rpl_ndb_basic.test: Use 'wait_for_slave_sql_error.inc' to wait the given sql thread error happening. There is no need to print the result of 'show slave status'. mysql-test/suite/rpl_ndb/t/rpl_ndb_circular.test: Use 'check_slave_is_running.inc' instead of 'show slave status' statement. mysql-test/suite/rpl_ndb/t/rpl_ndb_circular_simplex.test: Use 'check_slave_is_running.inc' instead of 'show slave status' statement. mysql-test/suite/rpl_ndb/t/rpl_ndb_idempotent.test: Use 'check_slave_is_running.inc' instead of 'show slave status' statement. mysql-test/suite/rpl_ndb/t/rpl_ndb_multi.test: Mask master_log_pos and master_log_file mysql-test/suite/rpl_ndb/t/rpl_ndb_sync.test: Use 'check_slave_is_running.inc' instead of 'show slave status' statement. mysql-test/suite/rpl_ndb/t/rpl_truncate_7ndb.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/t/alter_table-big.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/t/create-big.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/t/ctype_cp932_binlog_stm.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement. mysql-test/t/flush_block_commit_notembedded.test: It checks whether somethings are binlogged, so we using 'show_binlog_event.inc' instead of 'show master status'. mysql-test/t/multi_update.test: It checks whether somethings are binlogged, so we using 'wait_binlog_event.inc' instead of 'show master status'. mysql-test/t/sp_trans_log.test: Use 'show_binlog_events.inc' instead of 'show binlog events' statement.
307 lines
8.4 KiB
Plaintext
307 lines
8.4 KiB
Plaintext
#
|
|
# misc binlogging tests that do not require a slave running
|
|
#
|
|
|
|
-- source include/have_log_bin.inc
|
|
-- source include/not_embedded.inc
|
|
-- source include/have_innodb.inc
|
|
-- source include/have_debug.inc
|
|
|
|
--disable_warnings
|
|
drop table if exists t1, t2;
|
|
--enable_warnings
|
|
reset master;
|
|
|
|
create table t1 (a int) engine=innodb;
|
|
create table t2 (a int) engine=innodb;
|
|
begin;
|
|
insert t1 values (5);
|
|
commit;
|
|
begin;
|
|
insert t2 values (5);
|
|
commit;
|
|
# first COMMIT must be Query_log_event, second - Xid_log_event
|
|
source include/show_binlog_events.inc;
|
|
drop table t1,t2;
|
|
|
|
#
|
|
# binlog rotation after one big transaction
|
|
#
|
|
reset master;
|
|
let $1=100;
|
|
|
|
create table t1 (n int) engine=innodb;
|
|
begin;
|
|
--disable_query_log
|
|
while ($1)
|
|
{
|
|
eval insert into t1 values($1 + 4);
|
|
dec $1;
|
|
}
|
|
--enable_query_log
|
|
commit;
|
|
drop table t1;
|
|
--source include/show_binlog_events.inc
|
|
--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1)
|
|
--source include/show_binlog_events.inc
|
|
--let $binlog_file=
|
|
|
|
#
|
|
# Bug#22540 - Incorrect value in column End_log_pos of
|
|
# SHOW BINLOG EVENTS using InnoDB
|
|
#
|
|
|
|
# the following tests will show that certain queries now return
|
|
# absolute offsets (from binlog start, rather than relative to
|
|
# the beginning of the current transaction). under what
|
|
# conditions it should be allowed / is sensible to put the
|
|
# slider into the middle of a transaction is not our concern
|
|
# here; we just guarantee that if and when it's done, the
|
|
# user has valid offsets to use. if the setter function still
|
|
# wants to throw a "positioning into middle of transaction"
|
|
# warning, that's its prerogative and handled elsewhere.
|
|
|
|
set @ac = @@autocommit;
|
|
|
|
# first show this to work for SHOW BINLOG EVENTS
|
|
|
|
set autocommit= 0;
|
|
reset master;
|
|
create table t1(n int) engine=innodb;
|
|
begin;
|
|
insert into t1 values (1);
|
|
insert into t1 values (2);
|
|
insert into t1 values (3);
|
|
commit;
|
|
drop table t1;
|
|
--source include/show_binlog_events.inc
|
|
|
|
# now show that nothing breaks if we need to read from the cache more
|
|
# than once, resulting in split event-headers
|
|
|
|
set @bcs = @@binlog_cache_size;
|
|
set global binlog_cache_size=4096;
|
|
reset master;
|
|
|
|
create table t1 (a int) engine=innodb;
|
|
|
|
let $1=400;
|
|
disable_query_log;
|
|
begin;
|
|
while ($1)
|
|
{
|
|
eval insert into t1 values( $1 );
|
|
dec $1;
|
|
}
|
|
commit;
|
|
enable_query_log;
|
|
|
|
--source include/show_binlog_events.inc
|
|
|
|
drop table t1;
|
|
|
|
set global binlog_cache_size=@bcs;
|
|
set session autocommit = @ac;
|
|
|
|
#
|
|
# Bug#33798: prepared statements improperly handle large unsigned ints
|
|
#
|
|
--disable_warnings
|
|
drop table if exists t1;
|
|
--enable_warnings
|
|
reset master;
|
|
create table t1 (a bigint unsigned, b bigint(20) unsigned);
|
|
prepare stmt from "insert into t1 values (?,?)";
|
|
set @a= 9999999999999999;
|
|
set @b= 14632475938453979136;
|
|
execute stmt using @a, @b;
|
|
deallocate prepare stmt;
|
|
drop table t1;
|
|
--source include/show_binlog_events.inc
|
|
|
|
|
|
#
|
|
# Bug #39182: Binary log producing incompatible character set query from
|
|
# stored procedure.
|
|
#
|
|
reset master;
|
|
CREATE DATABASE bug39182 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
|
USE bug39182;
|
|
CREATE TABLE t1 (a VARCHAR(255) COLLATE utf8_unicode_ci)
|
|
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
|
|
|
DELIMITER //;
|
|
|
|
CREATE PROCEDURE p1()
|
|
BEGIN
|
|
DECLARE s1 VARCHAR(255);
|
|
SET s1= "test";
|
|
CREATE TEMPORARY TABLE tmp1
|
|
SELECT * FROM t1 WHERE a LIKE CONCAT("%", s1, "%");
|
|
SELECT
|
|
COLLATION(NAME_CONST('s1', _utf8'test')) c1,
|
|
COLLATION(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) c2,
|
|
COLLATION(s1) c3,
|
|
COERCIBILITY(NAME_CONST('s1', _utf8'test')) d1,
|
|
COERCIBILITY(NAME_CONST('s1', _utf8'test' COLLATE utf8_unicode_ci)) d2,
|
|
COERCIBILITY(s1) d3;
|
|
DROP TEMPORARY TABLE tmp1;
|
|
END//
|
|
|
|
DELIMITER ;//
|
|
|
|
CALL p1();
|
|
source include/show_binlog_events.inc;
|
|
|
|
DROP PROCEDURE p1;
|
|
DROP TABLE t1;
|
|
DROP DATABASE bug39182;
|
|
USE test;
|
|
|
|
#
|
|
# Bug#35383: binlog playback and replication breaks due to
|
|
# name_const substitution
|
|
#
|
|
DELIMITER //;
|
|
CREATE PROCEDURE p1(IN v1 INT)
|
|
BEGIN
|
|
CREATE TABLE t1 SELECT v1;
|
|
DROP TABLE t1;
|
|
END//
|
|
CREATE PROCEDURE p2()
|
|
BEGIN
|
|
DECLARE v1 INT;
|
|
CREATE TABLE t1 SELECT v1+1;
|
|
DROP TABLE t1;
|
|
END//
|
|
CREATE PROCEDURE p3(IN v1 INT)
|
|
BEGIN
|
|
CREATE TABLE t1 SELECT 1 FROM DUAL WHERE v1!=0;
|
|
DROP TABLE t1;
|
|
END//
|
|
CREATE PROCEDURE p4(IN v1 INT)
|
|
BEGIN
|
|
DECLARE v2 INT;
|
|
CREATE TABLE t1 SELECT 1, v1, v2;
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 SELECT 1, v1+1, v2;
|
|
DROP TABLE t1;
|
|
END//
|
|
DELIMITER ;//
|
|
|
|
CALL p1(1);
|
|
CALL p2();
|
|
CALL p3(0);
|
|
CALL p4(0);
|
|
DROP PROCEDURE p1;
|
|
DROP PROCEDURE p2;
|
|
DROP PROCEDURE p3;
|
|
DROP PROCEDURE p4;
|
|
|
|
--echo End of 5.0 tests
|
|
|
|
# Test of a too big SET INSERT_ID: see if the truncated value goes
|
|
# into binlog (right), or the too big value (wrong); we look at the
|
|
# binlog further down with SHOW BINLOG EVENTS.
|
|
reset master;
|
|
create table t1 (id tinyint auto_increment primary key);
|
|
set insert_id=128;
|
|
insert into t1 values(null);
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
# bug#22027
|
|
create table t1 (a int);
|
|
create table if not exists t2 select * from t1;
|
|
|
|
# bug#22762
|
|
create temporary table tt1 (a int);
|
|
create table if not exists t3 like tt1;
|
|
|
|
# BUG#25091 (A DELETE statement to mysql database is not logged with
|
|
# ROW mode format): Checking that some basic operations on tables in
|
|
# the mysql database is replicated even when the current database is
|
|
# 'mysql'.
|
|
|
|
--disable_warnings
|
|
USE mysql;
|
|
INSERT INTO user SET host='localhost', user='@#@', password=password('Just a test');
|
|
UPDATE user SET password=password('Another password') WHERE host='localhost' AND user='@#@';
|
|
DELETE FROM user WHERE host='localhost' AND user='@#@';
|
|
--enable_warnings
|
|
|
|
use test;
|
|
source include/show_binlog_events.inc;
|
|
drop table t1,t2,t3,tt1;
|
|
|
|
-- source extra/binlog_tests/binlog_insert_delayed.test
|
|
|
|
#Bug #26079 max_binlog_size + innodb = not make new binlog and hang server
|
|
# server should not hang, binlog must rotate in the end
|
|
reset master;
|
|
--disable_warnings
|
|
drop table if exists t3;
|
|
--enable_warnings
|
|
create table t3 (a int(11) NOT NULL AUTO_INCREMENT, b text, PRIMARY KEY (a) ) engine=innodb;
|
|
source include/show_master_status.inc;
|
|
let $it=4;
|
|
while ($it)
|
|
{
|
|
insert into t3(b) values ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
|
|
dec $it;
|
|
}
|
|
# must show new binlog index after rotating;
|
|
source include/show_master_status.inc;
|
|
drop table t3;
|
|
|
|
--echo #
|
|
--echo # Bug #45998: database crashes when running "create as select"
|
|
--echo #
|
|
CREATE DATABASE test1;
|
|
USE test1;
|
|
DROP DATABASE test1;
|
|
CREATE TABLE test.t1(a int);
|
|
INSERT INTO test.t1 VALUES (1), (2);
|
|
CREATE TABLE test.t2 SELECT * FROM test.t1;
|
|
USE test;
|
|
DROP TABLES t1, t2;
|
|
|
|
#
|
|
# Bug#46640
|
|
# This test verifies if the server_id stored in the "format
|
|
# description BINLOG statement" will override the server_id
|
|
# of the server executing the statements.
|
|
#
|
|
|
|
connect (fresh,localhost,root,,test);
|
|
connection fresh;
|
|
|
|
RESET MASTER;
|
|
CREATE TABLE t1 (a INT PRIMARY KEY);
|
|
|
|
# Format description event, with server_id = 10;
|
|
BINLOG '
|
|
3u9kSA8KAAAAZgAAAGoAAAABAAQANS4xLjM1LW1hcmlhLWJldGExLWRlYnVnLWxvZwAAAAAAAAAA
|
|
AAAAAAAAAAAAAAAAAADe72RIEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
|
|
';
|
|
|
|
# What server_id is logged for a statement? Should be our own, not the
|
|
# one from the format description event.
|
|
INSERT INTO t1 VALUES (1);
|
|
|
|
# INSERT INTO t1 VALUES (2), with server_id=20. Check that this is logged
|
|
# with our own server id, not the 20 from the BINLOG statement.
|
|
BINLOG '
|
|
3u9kSBMUAAAAKQAAAJEBAAAAABoAAAAAAAAABHRlc3QAAnQxAAEDAAA=
|
|
3u9kSBcUAAAAIgAAALMBAAAQABoAAAAAAAEAAf/+AgAAAA==
|
|
';
|
|
|
|
# Show binlog events to check that server ids are correct.
|
|
--replace_column 1 # 2 # 5 #
|
|
--replace_regex /Server ver: .*, Binlog ver: .*/Server ver: #, Binlog ver: #/ /table_id: [0-9]+/table_id: #/
|
|
SHOW BINLOG EVENTS;
|
|
|
|
DROP TABLE t1;
|
|
disconnect fresh;
|
|
|