220 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			220 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | -- source include/have_partition.inc | ||
|  | --disable_warnings | ||
|  | drop table if exists t1; | ||
|  | --enable_warnings | ||
|  | 
 | ||
|  | create table t1 (col1 datetime) | ||
|  | partition by range(datediff(col1,col1)) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | drop table t1; | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(greatest(col1,10)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(isnull(col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(least(col1,12)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(case when col1>0 then 10 else 20 end) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(ifnull(col1,5)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(nullif(col1,5)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(bit_length(col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 char(5)) | ||
|  | partition by range(bit_length(col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(char_length(col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 char(5)) | ||
|  | partition by range(char_length(col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 char(5)) | ||
|  | partition by range(character_length(col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(find_in_set(col1,1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 char(5)) | ||
|  | partition by range(find_in_set(col1,'1')) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(instr(col1,3)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 char(5)) | ||
|  | partition by range(instr(col1,'3')) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 char(5)) | ||
|  | partition by range(length(col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 char(5)) | ||
|  | partition by range(locate(1,col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(locate(1,col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 char(5)) | ||
|  | partition by range(octet_length(col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 char(5)) | ||
|  | partition by range(position(1 in col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(position(1 in col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 char(5)) | ||
|  | partition by range(strcmp(col1,2)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(strcmp(col1,2)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(crc32(col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(round(col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(sign(col1)) | ||
|  | (partition p0 values less than (2), partition p1 values less than (6)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 datetime) | ||
|  | partition by range(period_add(col1,5)) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 datetime, col2 datetime) | ||
|  | partition by range(period_diff(col1,col2)) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int, col2 int) | ||
|  | partition by range(period_diff(col1,col2)) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 datetime) | ||
|  | partition by range(timestampdiff(day,5,col1)) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR | ||
|  | create table t1 (col1 date) | ||
|  | partition by range(unix_timestamp(col1)) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 datetime) | ||
|  | partition by range(week(col1)) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 varchar(25)) | ||
|  | partition by range(cast(col1 as signed)) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 varchar(25)) | ||
|  | partition by range(convert(col1,unsigned)) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(col1 | 20) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(col1 & 20) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(col1 ^ 20) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(col1 << 20) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(col1 >> 20) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(~col1) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(bit_count(col1)) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); | ||
|  | 
 | ||
|  | -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED | ||
|  | create table t1 (col1 int) | ||
|  | partition by range(inet_aton(col1)) | ||
|  | (partition p0 values less than (10), partition p1 values less than (30)); |