mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 19:06:14 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			146 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			146 lines
		
	
	
	
		
			3.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| # Test replication, when using special non-replicated tables.
 | |
| #
 | |
| # This test involve special statements that use non-replicated tables.
 | |
| # Changes affecting non replicated tables are never written to the binlog.
 | |
| # Executing these statements should work nicely with replication in all cases:
 | |
| # - STATEMENT binlog format
 | |
| # - MIXED binlog format
 | |
| # - ROW binlog format.
 | |
| 
 | |
| RESET MASTER;
 | |
| 
 | |
| --disable_warnings
 | |
| drop database if exists my_local_db;
 | |
| --enable_warnings
 | |
| 
 | |
| create database my_local_db;
 | |
| 
 | |
| create table my_local_db.my_tx_table(a bigint) engine = innodb;
 | |
| create table my_local_db.my_non_tx_table(a bigint) engine = myisam;
 | |
| 
 | |
| use test;
 | |
| drop table if exists marker_start;
 | |
| 
 | |
| # --binlog-ignore-db only works with the current database.
 | |
| use my_local_db;
 | |
| 
 | |
| insert into my_tx_table(a)
 | |
|   values (1000), (2000), (3000);
 | |
| 
 | |
| insert into my_non_tx_table(a)
 | |
|   values (1000), (2000), (3000);
 | |
| 
 | |
| use test;
 | |
| drop table if exists marker_truncate;
 | |
| 
 | |
| use performance_schema;
 | |
| truncate table events_waits_history;
 | |
| truncate table events_waits_history_long;
 | |
| 
 | |
| use test;
 | |
| truncate table performance_schema.events_statements_history_long;
 | |
| truncate table performance_schema.host_cache;
 | |
| 
 | |
| use test;
 | |
| drop table if exists marker_update;
 | |
| 
 | |
| use performance_schema;
 | |
| update setup_instruments set enabled='NO';
 | |
| update setup_instruments set timed='NO';
 | |
| use test;
 | |
| update performance_schema.setup_instruments set enabled='YES', timed='YES';
 | |
| update performance_schema.threads set instrumented='YES';
 | |
| 
 | |
| use test;
 | |
| drop table if exists marker_insert;
 | |
| 
 | |
| insert into performance_schema.setup_actors(`user`, `host`, `role`)
 | |
|   values ('XXX', 'XXX', 'XXX'),
 | |
|          ('YYY', 'YYY', 'YYY'),
 | |
|          ('ZZZ', 'ZZZ', 'ZZZ');
 | |
| 
 | |
| select * from performance_schema.setup_actors
 | |
|   where user in ('XXX', 'YYY', 'ZZZ') order by user;
 | |
| 
 | |
| insert into performance_schema.setup_objects
 | |
|   (object_type, object_schema, object_name, enabled, timed)
 | |
|   values ('TABLE', 'DB1', 'AAA', 'YES', 'YES'),
 | |
|          ('TABLE', 'DB1', 'BBB', 'NO', 'NO'),
 | |
|          ('TABLE', 'DB2', 'CCC', 'YES', 'NO'),
 | |
|          ('TABLE', 'DB2', 'DDD', 'NO', 'YES');
 | |
| 
 | |
| select * from performance_schema.setup_objects
 | |
|   where object_schema like 'DB%' order by object_name;
 | |
| 
 | |
| use test;
 | |
| drop table if exists marker_insert_select;
 | |
| 
 | |
| # Note:
 | |
| # The queries used here do not make any sense (no semantic).
 | |
| # What this test is interrested in, is check the behavior
 | |
| # when replicating queries that mix both:
 | |
| # - non replicated tables
 | |
| # - replicated tables
 | |
| 
 | |
| use my_local_db;
 | |
| insert into my_tx_table(a)
 | |
|   select thread_id from performance_schema.threads;
 | |
| 
 | |
| insert into my_non_tx_table(a)
 | |
|   select thread_id from performance_schema.threads;
 | |
| 
 | |
| insert into my_tx_table(a)
 | |
|   select id from information_schema.processlist;
 | |
| 
 | |
| insert into my_non_tx_table(a)
 | |
|   select id from information_schema.processlist;
 | |
| 
 | |
| insert into my_tx_table(a)
 | |
|   select thread_id from mysql.general_log;
 | |
| 
 | |
| insert into my_non_tx_table(a)
 | |
|   select thread_id from mysql.general_log;
 | |
| 
 | |
| insert into my_tx_table(a)
 | |
|   select thread_id from mysql.slow_log;
 | |
| 
 | |
| insert into my_non_tx_table(a)
 | |
|   select thread_id from mysql.slow_log;
 | |
| 
 | |
| insert into my_tx_table(a)
 | |
|   select Relay_log_pos from mysql.slave_relay_log_info;
 | |
| 
 | |
| insert into my_non_tx_table(a)
 | |
|   select Relay_log_pos from mysql.slave_relay_log_info;
 | |
| 
 | |
| insert into my_tx_table(a)
 | |
|   select Master_log_pos from mysql.slave_master_info;
 | |
| 
 | |
| insert into my_non_tx_table(a)
 | |
|   select Master_log_pos from mysql.slave_master_info;
 | |
| 
 | |
| insert into my_tx_table(a)
 | |
|   select Relay_log_pos from mysql.slave_worker_info;
 | |
| 
 | |
| insert into my_non_tx_table(a)
 | |
|   select Relay_log_pos from mysql.slave_worker_info;
 | |
| 
 | |
| use test;
 | |
| drop table if exists marker_delete;
 | |
| 
 | |
| delete from performance_schema.setup_actors
 | |
|   where user in ('XXX', 'YYY', 'ZZZ');
 | |
| 
 | |
| delete from performance_schema.setup_objects
 | |
|   where object_schema like 'DB%';
 | |
| 
 | |
| use test;
 | |
| drop table if exists marker_end;
 | |
| 
 | |
| drop database my_local_db;
 | |
| 
 | |
| # The content of the binlog dumped in the result file
 | |
| # should not contain any references to non-replicated tables.
 | |
| 
 | |
| --source include/show_binlog_events.inc
 | |
| 
 | 
