mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-24 07:13:33 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			69 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| --source include/have_ndb.inc
 | |
| #
 | |
| # Simple test for the partition storage engine
 | |
| # Focuses on range partitioning tests
 | |
| # 
 | |
| #-- source include/have_partition.inc
 | |
| 
 | |
| --disable_query_log
 | |
| set new=on;
 | |
| --enable_query_log
 | |
| 
 | |
| --disable_warnings
 | |
| drop table if exists t1;
 | |
| --enable_warnings
 | |
| 
 | |
| #
 | |
| # Partition by list, basic
 | |
| #
 | |
| 
 | |
| CREATE TABLE t1 ( f_int1 INTEGER NOT NULL, f_int2 INTEGER NOT NULL, 
 | |
| 	          f_char1 CHAR(10),
 | |
|                   f_char2 CHAR(10), f_charbig VARCHAR(1000),
 | |
| PRIMARY KEY (f_int1,f_int2))
 | |
| ENGINE = NDB
 | |
| PARTITION BY LIST(MOD(f_int1 + f_int2,4)) 
 | |
| (PARTITION part_3 VALUES IN (-3),
 | |
|  PARTITION part_2 VALUES IN (-2),
 | |
|  PARTITION part_1 VALUES IN (-1),
 | |
|  PARTITION part0 VALUES IN (0),
 | |
|  PARTITION part1 VALUES IN (1),
 | |
|  PARTITION part2 VALUES IN (2),
 | |
|  PARTITION part3 VALUES IN (3,4,5));
 | |
| 
 | |
| INSERT INTO t1 SET f_int1 = -2, f_int2 = 20, f_char1 = '20', f_char2 = '20', f_charbig = '===20===';
 | |
| INSERT INTO t1 SET f_int1 = 1, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
 | |
| INSERT INTO t1 SET f_int1 = 2, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
 | |
| INSERT INTO t1 SET f_int1 = 3, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
 | |
| INSERT INTO t1 SET f_int1 = 4, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
 | |
| INSERT INTO t1 SET f_int1 = 5, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
 | |
| INSERT INTO t1 SET f_int1 = 20, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
 | |
| 
 | |
| SELECT * FROM t1 ORDER BY f_int1;
 | |
| 
 | |
| DROP TABLE t1;
 | |
| 
 | |
| #
 | |
| # Partition by list, no pk
 | |
| #
 | |
| 
 | |
| CREATE TABLE t1 ( f_int1 INTEGER, f_int2 INTEGER, f_char1 CHAR(10), 
 | |
|                   f_char2 CHAR(10), f_charbig VARCHAR(1000))
 | |
| ENGINE = NDB
 | |
| PARTITION BY LIST(f_int1) 
 | |
| (PARTITION part_1 VALUES IN (-1),
 | |
|  PARTITION part0 VALUES IN (0,1),
 | |
|  PARTITION part1 VALUES IN (2));
 | |
| 
 | |
| INSERT INTO t1 SET f_int1 = -1, f_int2 = 20, f_char1 = '20', f_char2 = '20', f_charbig = '===20===';
 | |
| INSERT INTO t1 SET f_int1 = 0, f_int2 = 20, f_char1 = '20', f_char2 = '20', f_charbig = '===20===';
 | |
| INSERT INTO t1 SET f_int1 = 1, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
 | |
| INSERT INTO t1 SET f_int1 = 2, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
 | |
| --error ER_NO_PARTITION_FOR_GIVEN_VALUE
 | |
| INSERT INTO t1 SET f_int1 = 20, f_int2 = 1, f_char1 = '1', f_char2 = '1', f_charbig = '===1===';
 | |
| 
 | |
| SELECT * FROM t1 ORDER BY f_int1;
 | |
| 
 | |
| DROP TABLE t1;
 | |
| 
 | 
