86 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			86 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								--disable_abort_on_error
							 | 
						||
| 
								 | 
							
								# Run this test only when mysqld don't has partitioning (not compiled with)
							 | 
						||
| 
								 | 
							
								# the statements are not expected to work, just check that we
							 | 
						||
| 
								 | 
							
								# can't crash the server
							 | 
						||
| 
								 | 
							
								-- require r/not_partition.require
							 | 
						||
| 
								 | 
							
								disable_query_log;
							 | 
						||
| 
								 | 
							
								show variables like "have_partitioning";
							 | 
						||
| 
								 | 
							
								enable_query_log;
							 | 
						||
| 
								 | 
							
								--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);
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--error ER_FEATURE_DISABLED
							 | 
						||
| 
								 | 
							
								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_FEATURE_DISABLED
							 | 
						||
| 
								 | 
							
								ALTER TABLE t1 PARTITION BY KEY(joined) PARTITIONS 2;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--error ER_BAD_TABLE_ERROR
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								--error ER_FEATURE_DISABLED
							 | 
						||
| 
								 | 
							
								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_FEATURE_DISABLED
							 | 
						||
| 
								 | 
							
								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;
							 |