mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-28 17:15:19 +03:00 
			
		
		
		
	 631c82d2ea
			
		
	
	631c82d2ea
	
	
	
		
			
			- As a sideeffect of the patch to generate lex_hash.h only once on the machine where the source dist was produced, a problem was found when compiling a mysqld without partition support - it would crash when looking up the lex symbols due to mismatch between lex.h and the generated lex_hash.h - Remove the ifdef for partition in lex.h - Fix minor problem with"EXPLAIN PARTITION" when not compiled with partition(existed also without the above patch) - Add test case that will be run when we don't have partition support compiled into mysqld - Return error ER_FEATURE_DISABLED if user tries to use PARTITION when there is no support for it.
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| --disable_abort_on_error
 | |
| # Run this tets only when mysqld don't has partitioning
 | |
| # 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;
 | |
| 
 | |
| 
 | |
| --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;
 |