MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
partition_varchar.inc
1 --echo ---- Partitioning and varchar data type
2 
3 eval create table t1 (a varchar(767) not null, primary key(a)) engine=$engine
4 partition by key (a) (
5 partition pa1 max_rows=20 min_rows=2,
6 partition pa2 max_rows=30 min_rows=3,
7 partition pa3 max_rows=30 min_rows=4,
8 partition pa4 max_rows=40 min_rows=2);
9 show create table t1;
10 insert into t1 values (repeat('a',767)), ('b'), (repeat('a',500)), (repeat('b',64));
11 select * from t1;
12 select * from t1 where a='b';
13 update t1 set a='bb' where a='b';
14 delete from t1 where a='bb';
15 select * from t1;
16 drop table t1;
17 
18 eval create table t2 (a varchar(767) not null, primary key(a)) engine=$engine
19 partition by key (a) partitions 27;
20 show create table t2;
21 let $count=26;
22 let $letter=0;
23 --echo $count inserts;
24 #--disable_query_log
25 while ($count)
26 {
27 eval insert into t2 values (repeat(char(ascii('a')+$letter),$count*$count));
28 dec $count;
29 inc $letter;
30 }
31 select count(*) from t2;
32 select * from t2;
33 drop table t2;
34 
35 if (0)
36 {
37 eval create table t3 (a varchar(767) not null, primary key(a)) engine=$engine
38 partition by range (ascii(a)) subpartition by key (a) subpartitions 4 (
39 partition pa16 values less than (16),
40 partition pa32 values less than (32),
41 partition pa64 values less than (64),
42 partition pa128 values less than (128),
43 partition pa256 values less than (256)
44 );
45 show create table t3;
46 let $count=26;
47 let $letter=0;
48 --echo $count inserts;
49 #--disable_query_log
50 while ($count)
51 {
52 eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54));
53 dec $count;
54 inc $letter;
55 }
56 select count(*) from t3;
57 select * from t3;
58 drop table t3;
59 
60 eval create table t4 (a varchar(767) not null, primary key(a)) engine=$engine
61 partition by list (ascii(a)) subpartition by key (a) subpartitions 4 (
62 partition pa16 values in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16),
63 partition pa32 values in (17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32),
64 partition pa64 values in (33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64),
65 partition pa128 values in (65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128),
66 partition pa256 values in (129,130,131,132,133,134,135,136,137,138,139,140
67 ,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256)
68 );
69 show create table t4;
70 let $count=26;
71 let $letter=0;
72 --echo $count inserts;
73 #--disable_query_log
74 while ($count)
75 {
76 eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54));
77 dec $count;
78 inc $letter;
79 }
80 select count(*) from t4;
81 select * from t4;
82 drop table t4;
83 }
84 #if (0)
85