mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 18:36:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			190 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			190 lines
		
	
	
	
		
			5.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| ############################################################
 | |
| # Author: MATZ                                             #
 | |
| # Date: 2006-03-22                                         #
 | |
| # Purpose: See if replication of partition tables work     #
 | |
| # Most of this test is copied from the rpl_xxx2yyy tests,  #
 | |
| # but here we just test some simple basic replication of   #
 | |
| # partition tables with same engine (MyISAM) in both ends. #
 | |
| ############################################################
 | |
| 
 | |
| --source include/have_binlog_format_row.inc
 | |
| --source include/have_partition.inc
 | |
| --source include/master-slave.inc
 | |
| connection master;
 | |
| --disable_warnings
 | |
| DROP TABLE IF EXISTS t1;
 | |
| 
 | |
| SET @@BINLOG_FORMAT = ROW;
 | |
| 
 | |
| --echo **** Partition RANGE testing ****
 | |
| 
 | |
| # Create table that is partitioned by range on year i.e. year(t) and
 | |
| # replicate basice operations such at insert, update delete between 2
 | |
| # different storage engines Alter table and ensure table is handled
 | |
| # Correctly on the slave
 | |
| # Note that the storage engine should not be explicit: the default
 | |
| # storage engine is used on master and slave.
 | |
| 
 | |
| CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255), 
 | |
|                  bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, 
 | |
|                  f FLOAT DEFAULT 0, total BIGINT UNSIGNED, 
 | |
|                  y YEAR, t DATE)
 | |
|                  PARTITION BY RANGE (YEAR(t)) 
 | |
|                 (PARTITION p0 VALUES LESS THAN (1901), 
 | |
|                  PARTITION p1 VALUES LESS THAN (1946),  
 | |
|                  PARTITION p2 VALUES LESS THAN (1966), 
 | |
|                  PARTITION p3 VALUES LESS THAN (1986), 
 | |
|                  PARTITION p4 VALUES LESS THAN (2005), 
 | |
|                  PARTITION p5 VALUES LESS THAN MAXVALUE);
 | |
| 
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| sync_slave_with_master;
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| --source include/rpl_multi_engine3.inc
 | |
| 
 | |
| connection master;
 | |
| # Check that simple Alter statements are replicated correctly
 | |
| ALTER TABLE t1 MODIFY vc TEXT;
 | |
| 
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| sync_slave_with_master;
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| # Perform basic operation on master and ensure replicated correctly
 | |
| --source include/rpl_multi_engine3.inc
 | |
| 
 | |
| connection master;
 | |
| DROP TABLE IF EXISTS t1;
 | |
| 
 | |
| ########################################################
 | |
| 
 | |
| --echo **** Partition LIST testing ****
 | |
| 
 | |
| # Create table that is partitioned by list on id i.e. (2,4). Pretend
 | |
| # that we missed one and alter to add. Then replicate basice
 | |
| # operations such at insert, update delete between 2 different storage
 | |
| # engines Alter table and ensure table is handled Correctly on the
 | |
| # slave.
 | |
| 
 | |
| 
 | |
| CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255), 
 | |
|                  bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, 
 | |
|                  f FLOAT DEFAULT 0, total BIGINT UNSIGNED, 
 | |
|                  y YEAR, t DATE)
 | |
|                  PARTITION BY LIST(id) 
 | |
|                 (PARTITION p0 VALUES IN (2, 4), 
 | |
|                  PARTITION p1 VALUES IN (42, 142),
 | |
|                  PARTITION p2 VALUES IN (412));
 | |
| 
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| sync_slave_with_master;
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| # Perform basic operation on master and ensure replicated correctly
 | |
| --source include/rpl_multi_engine3.inc
 | |
| 
 | |
| connection master;
 | |
| # Check that simple Alter statements are replicated correctly ---
 | |
| ALTER TABLE t1 MODIFY vc TEXT;
 | |
| 
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| sync_slave_with_master;
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| # Perform basic operation on master and ensure replicated correctly
 | |
| --source include/rpl_multi_engine3.inc
 | |
| 
 | |
| connection master;
 | |
| DROP TABLE IF EXISTS t1;
 | |
| 
 | |
| ########################################################
 | |
| 
 | |
| --echo **** Partition HASH testing ****
 | |
| 
 | |
| # Create table that is partitioned by hash on year i.e. YEAR(t). Then
 | |
| # replicate basice operations such at insert, update delete between 2
 | |
| # different storage engines Alter table and ensure table is handled
 | |
| # Correctly on the slave
 | |
| 
 | |
| CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255), 
 | |
|                  bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, 
 | |
|                  f FLOAT DEFAULT 0, total BIGINT UNSIGNED, 
 | |
|                  y YEAR, t DATE)
 | |
|                  PARTITION BY HASH( YEAR(t) ) 
 | |
|                  PARTITIONS 4; 
 | |
| 
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| sync_slave_with_master;
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| --source include/rpl_multi_engine3.inc
 | |
| 
 | |
| # Check that simple Alter statements are replicated correctly
 | |
| ALTER TABLE t1 MODIFY vc TEXT;
 | |
| 
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| sync_slave_with_master;
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| --source include/rpl_multi_engine3.inc
 | |
| 
 | |
| connection master;
 | |
| DROP TABLE IF EXISTS t1;
 | |
| 
 | |
| ########################################################
 | |
| 
 | |
| # This part does not work
 | |
| --echo **** Partition by KEY ****
 | |
| 
 | |
| # Create table that is partitioned by key on id with 4 parts.  Then
 | |
| # replicate basice operations such at insert, update delete between 2
 | |
| # different storage engines Alter table and ensure table is handled
 | |
| # Correctly on the slave
 | |
| 
 | |
| CREATE TABLE t1 (id MEDIUMINT NOT NULL, b1 BIT(8), vc VARCHAR(255), 
 | |
|                  bc CHAR(255), d DECIMAL(10,4) DEFAULT 0, 
 | |
|                  f FLOAT DEFAULT 0, total BIGINT UNSIGNED, 
 | |
|                  y YEAR, t DATE,PRIMARY KEY(id))
 | |
|                  PARTITION BY KEY() 
 | |
|                  PARTITIONS 4;
 | |
| 
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| sync_slave_with_master;
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| --source include/rpl_multi_engine3.inc
 | |
| 
 | |
| connection master;
 | |
| # Check that simple Alter statements are replicated correctly
 | |
| ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY(id, total);
 | |
| 
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| sync_slave_with_master;
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| --source include/rpl_multi_engine3.inc
 | |
| 
 | |
| connection master;
 | |
| # Check that simple Alter statements are replicated correctly
 | |
| ALTER TABLE t1 MODIFY vc TEXT;
 | |
| 
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| sync_slave_with_master;
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| --source include/rpl_multi_engine3.inc
 | |
| 
 | |
| DROP TABLE IF EXISTS t1;
 | |
| 
 | |
| # End of 5.1 test case
 | |
| --source include/rpl_end.inc
 | 
