mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 18:36:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			77 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| --echo ---- Partitioning and enum data type
 | |
| 
 | |
| eval create table t1 (a enum('A','B','C','D','E','F','G','H','I','J','K','L') not null, primary key(a)) engine=$engine 
 | |
| partition by key (a) (
 | |
| partition pa1 max_rows=20 min_rows=2,
 | |
| partition pa2 max_rows=30 min_rows=3,
 | |
| partition pa3 max_rows=30 min_rows=4,
 | |
| partition pa4 max_rows=40 min_rows=2);
 | |
| show create table t1;
 | |
| insert into t1 values ('A'),('D'),('L'),('G');
 | |
| --sorted_result
 | |
| select * from t1;
 | |
| select * from t1 where a='A';
 | |
| update t1 set a='E' where a='L';
 | |
| select * from t1;
 | |
| delete from t1 where a='E';
 | |
| --sorted_result
 | |
| select * from t1;
 | |
| drop table t1;
 | |
| 
 | |
| eval create table t2 (a enum (
 | |
| '1','2','3','4','5','6','7','8','9','0',
 | |
| 'A','B','C','D','E','F','G','H','I','J','K','L',
 | |
| 'M','N','O','P','Q','R','S','T','U','V','W','X',
 | |
| 'Y','Z'
 | |
| ) not null, primary key(a)) engine=$engine 
 | |
| partition by key (a) partitions 27;
 | |
| show create table t2;
 | |
| let $letter=26;
 | |
| --echo $count inserts;
 | |
| --disable_query_log
 | |
| begin;
 | |
| while ($letter)
 | |
| {
 | |
| eval insert ignore into t2 values (char(ascii('A')+$letter));
 | |
| dec $letter;
 | |
| }
 | |
| commit;
 | |
| --enable_query_log
 | |
| insert into t2 values ('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('0');
 | |
| select count(*) from t2;
 | |
| --sorted_result
 | |
| select * from t2;
 | |
| drop table t2;
 | |
| 
 | |
| # mleich: Several partitioning functions are no more allowed.
 | |
| if (0)
 | |
| {
 | |
| eval create table t3 (a enum (
 | |
| '1','2','3','4','5','6','7','8','9','0',
 | |
| 'A','B','C','D','E','F','G','H','I','J','K','L',
 | |
| 'M','N','O','P','Q','R','S','T','U','V','W','X',
 | |
| 'Y','Z'
 | |
| ) not null, primary key(a)) engine=$engine 
 | |
| partition by range (a) subpartition by key (a) subpartitions 3 (
 | |
| partition pa9 values less than (10),
 | |
| partition pa18 values less than (19),
 | |
| partition pa27 values less than (28),
 | |
| partition pa36 values less than (37)
 | |
| );
 | |
| show create table t3;
 | |
| let $letter=36;
 | |
| --echo $count inserts;
 | |
| --disable_query_log
 | |
|   begin;
 | |
| while ($letter)
 | |
| {
 | |
| #eval insert into t3 values ($letter);
 | |
| dec $letter;
 | |
| }
 | |
| commit;
 | |
| --enable_query_log
 | |
| select count(*) from t3;
 | |
| select * from t3;
 | |
| drop table t3;
 | |
| }
 | |
| # End of tests with disallowed partitioning functions.
 | 
