mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			105 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| --disable_abort_on_error
 | |
| # Run this test only when mysqld has partitioning, but it is disabled.
 | |
| # The statements are not expected to work, just check that we
 | |
| # can't crash the server.
 | |
| if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'partition' AND PLUGIN_STATUS='DISABLED'`)
 | |
| {
 | |
|   --skip Test requires disabled partitioning
 | |
| }
 | |
| --disable_warnings
 | |
| DROP TABLE IF EXISTS t1;
 | |
| --enable_warnings
 | |
| let $MYSQLD_DATADIR= `SELECT @@datadir`;
 | |
| 
 | |
| #
 | |
| # Bug#39893: Crash if select on a partitioned table,
 | |
| #            when partitioning is disabled
 | |
| FLUSH TABLES;
 | |
| --copy_file $MYSQLTEST_VARDIR/std_data/parts/t1.frm $MYSQLD_DATADIR/test/t1.frm
 | |
| SELECT * FROM t1;
 | |
| TRUNCATE TABLE t1;
 | |
| ANALYZE TABLE t1;
 | |
| CHECK TABLE t1;
 | |
| OPTIMIZE TABLE t1;
 | |
| REPAIR TABLE t1;
 | |
| ALTER TABLE t1 REPAIR PARTITION ALL;
 | |
| ALTER TABLE t1 CHECK PARTITION ALL;
 | |
| ALTER TABLE t1 OPTIMIZE PARTITION ALL;
 | |
| ALTER TABLE t1 ANALYZE PARTITION ALL;
 | |
| ALTER TABLE t1 REBUILD PARTITION ALL;
 | |
| ALTER TABLE t1 ENGINE Memory;
 | |
| ALTER TABLE t1 ADD (new INT);
 | |
| --disable_warnings
 | |
| DROP TABLE t1;
 | |
| --enable_warnings
 | |
| 
 | |
| --error ER_OPTION_PREVENTS_STATEMENT
 | |
| CREATE TABLE t1 (
 | |
|     firstname VARCHAR(25) NOT NULL,
 | |
|     lastname VARCHAR(25) NOT NULL,
 | |
|     username VARCHAR(16) NOT NULL,
 | |
|     email VARCHAR(35),
 | |
|     joined DATE NOT NULL
 | |
| )
 | |
| PARTITION BY KEY(joined)
 | |
| PARTITIONS 6;
 | |
| 
 | |
| --error ER_OPTION_PREVENTS_STATEMENT
 | |
| ALTER TABLE t1 PARTITION BY KEY(joined) PARTITIONS 2;
 | |
| 
 | |
| --error ER_BAD_TABLE_ERROR
 | |
| drop table t1;
 | |
| 
 | |
| --error ER_OPTION_PREVENTS_STATEMENT
 | |
| CREATE TABLE t1 (
 | |
|     firstname VARCHAR(25) NOT NULL,
 | |
|     lastname VARCHAR(25) NOT NULL,
 | |
|     username VARCHAR(16) NOT NULL,
 | |
|     email VARCHAR(35),
 | |
|     joined DATE NOT NULL
 | |
| )
 | |
| PARTITION BY RANGE( YEAR(joined) ) (
 | |
|     PARTITION p0 VALUES LESS THAN (1960),
 | |
|     PARTITION p1 VALUES LESS THAN (1970),
 | |
|     PARTITION p2 VALUES LESS THAN (1980),
 | |
|     PARTITION p3 VALUES LESS THAN (1990),
 | |
|     PARTITION p4 VALUES LESS THAN MAXVALUE
 | |
| );
 | |
| --error ER_BAD_TABLE_ERROR
 | |
| drop table t1;
 | |
| 
 | |
| --error ER_OPTION_PREVENTS_STATEMENT
 | |
| CREATE TABLE t1 (id INT, purchased DATE)
 | |
|     PARTITION BY RANGE( YEAR(purchased) )
 | |
|     SUBPARTITION BY HASH( TO_DAYS(purchased) )
 | |
|     SUBPARTITIONS 2 (
 | |
|         PARTITION p0 VALUES LESS THAN (1990),
 | |
|         PARTITION p1 VALUES LESS THAN (2000),
 | |
|         PARTITION p2 VALUES LESS THAN MAXVALUE
 | |
|     );
 | |
| --error ER_BAD_TABLE_ERROR
 | |
| drop table t1;
 | |
| 
 | |
| # Create a table without partitions to test "EXPLAIN PARTITIONS"
 | |
| create table t1 (a varchar(10) charset latin1 collate latin1_bin);
 | |
| insert into t1 values (''),(' '),('a'),('a '),('a  ');
 | |
| explain partitions select * from t1 where a='a ' OR a='a';
 | |
| drop table t1;
 | |
| 
 | |
| --echo #
 | |
| --echo # bug#11760213-52599: ALTER TABLE REMOVE PARTITIONING ON NON-PARTITIONED
 | |
| --echo #                                 TABLE CORRUPTS MYISAM
 | |
| --disable_warnings
 | |
| DROP TABLE if exists `t1`;
 | |
| --enable_warnings
 | |
| CREATE TABLE  `t1`(`a` INT)ENGINE=myisam;
 | |
| ALTER TABLE `t1` ADD COLUMN `b` INT;
 | |
| CREATE UNIQUE INDEX `i1` ON `t1`(`b`);
 | |
| CREATE UNIQUE INDEX `i2` ON `t1`(`a`);
 | |
| ALTER TABLE `t1` ADD PRIMARY KEY  (`a`);
 | |
| --error ER_PARTITION_MGMT_ON_NONPARTITIONED
 | |
| ALTER TABLE `t1` REMOVE PARTITIONING;
 | |
| CHECK TABLE `t1` EXTENDED;
 | |
| DROP TABLE t1;
 | |
| 
 |