MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
partition_decimal.inc
1 eval create table t1 (a decimal(10,4) not null, primary key(a)) engine=$engine
2 partition by key (a) (
3 partition pa1 max_rows=20 min_rows=2,
4 partition pa2 max_rows=30 min_rows=3,
5 partition pa3 max_rows=30 min_rows=4,
6 partition pa4 max_rows=40 min_rows=2);
7 show create table t1;
8 insert into t1 values (999999.9999), (-999999.9999), (123456.7899), (-123456.7899), (-1.5), (1), (0), (-1), (1.5), (1234.567), (-1234.567);
9 select * from t1;
10 select * from t1 where a=1234.567;
11 delete from t1 where a=1234.567;
12 select * from t1;
13 drop table t1;
14 
15 eval create table t2 (a decimal(18,9) not null, primary key(a)) engine=$engine
16 partition by key (a) partitions 10;
17 show create table t2;
18 insert into t2 values (999999999.999999999), (-999999999.999999999), (-1.5), (-1), (0), (1.5), (1234.567), (-1234.567);
19 select * from t2;
20 select * from t2 where a=1234.567;
21 delete from t2 where a=1234.567;
22 select * from t2;
23 delete from t2;
24 let $count=$maxrows;
25 --echo $count*3 inserts;
26 --disable_query_log
27 while ($count)
28 {
29 eval insert into t2 values ($count);
30 eval insert into t2 values ($count+0.333333333);
31 eval insert into t2 values ($count+0.755555555);
32 dec $count;
33 }
34 --enable_query_log
35 select count(*) from t2;
36 drop table t2;
37 
38 # Bug 30577: FLOOR() and CEILING() not usable as partition functions
39 # Partition functions are required to return INT_RESULT; FLOOR() and
40 # CEILING() do not, unless they have an INT or DECIMAL argument.
41 
42 
43 eval create table t3 (a decimal(18,9) not null, primary key(a)) engine=$engine
44 partition by range (floor(a)) subpartition by key (a) subpartitions 2 (
45 partition pa2 values less than (2),
46 partition pa4 values less than (4),
47 partition pa6 values less than (6),
48 partition pa8 values less than (8),
49 partition pa10 values less than (10)
50 );
51 show create table t3;
52 let $count=9;
53 --echo $count*3 inserts;
54 while ($count)
55 {
56 eval insert into t3 values ($count);
57 eval insert into t3 values ($count+0.333333333);
58 eval insert into t3 values ($count+0.755555555);
59 dec $count;
60 }
61 --enable_query_log
62 select count(*) from t3;
63 drop table t3;
64 
65 eval create table t4 (a decimal(18,9) not null, primary key(a)) engine=$engine
66 partition by list (ceiling(a)) subpartition by key (a) subpartitions 2 (
67 partition pa2 values in (1,2),
68 partition pa4 values in (3,4),
69 partition pa6 values in (5,6),
70 partition pa8 values in (7,8),
71 partition pa10 values in (9,10)
72 );
73 show create table t4;
74 let $count=9;
75 --echo $count*3 inserts;
76 while ($count)
77 {
78 eval insert into t4 values ($count);
79 eval insert into t4 values ($count+0.333333333);
80 eval insert into t4 values ($count+0.755555555);
81 dec $count;
82 }
83 --enable_query_log
84 select count(*) from t4;
85 drop table t4;