mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	dollin' it up for Guilhem ;) -- test streamlined, better comments, faster code, add'l assert.
		
			
				
	
	
		
			110 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.6 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
 | 
						|
 | 
						|
--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
 | 
						|
--replace_column 2 # 5 #
 | 
						|
--replace_regex /\/\* xid=.* \*\//\/* XID *\//
 | 
						|
show binlog events from 98;
 | 
						|
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;
 | 
						|
--replace_column 2 # 5 #
 | 
						|
--replace_regex /\/\* xid=.* \*\//\/* XID *\//
 | 
						|
show binlog events in 'master-bin.000001' from 98;
 | 
						|
--replace_column 2 # 5 #
 | 
						|
show binlog events in 'master-bin.000002' from 98;
 | 
						|
 | 
						|
#
 | 
						|
# 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;
 | 
						|
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/
 | 
						|
show binlog events from 0;
 | 
						|
 | 
						|
# 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;
 | 
						|
 | 
						|
--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ /Server ver: [^,]*,/Server version,/
 | 
						|
show binlog events from 0;
 | 
						|
 | 
						|
drop table t1;
 | 
						|
 | 
						|
set global binlog_cache_size=@bcs;
 | 
						|
set session autocommit = @ac;
 | 
						|
 | 
						|
--echo End of 5.0 tests
 |