1create table t1 (a decimal(10,4) not null, primary key(a)) engine='MYISAM'
2partition by key (a) (
3partition pa1 max_rows=20 min_rows=2,
4partition pa2 max_rows=30 min_rows=3,
5partition pa3 max_rows=30 min_rows=4,
6partition pa4 max_rows=40 min_rows=2);
7show create table t1;
8Table	Create Table
9t1	CREATE TABLE `t1` (
10  `a` decimal(10,4) NOT NULL,
11  PRIMARY KEY (`a`)
12) ENGINE=MyISAM DEFAULT CHARSET=latin1
13 PARTITION BY KEY (`a`)
14(PARTITION `pa1` MAX_ROWS = 20 MIN_ROWS = 2 ENGINE = MyISAM,
15 PARTITION `pa2` MAX_ROWS = 30 MIN_ROWS = 3 ENGINE = MyISAM,
16 PARTITION `pa3` MAX_ROWS = 30 MIN_ROWS = 4 ENGINE = MyISAM,
17 PARTITION `pa4` MAX_ROWS = 40 MIN_ROWS = 2 ENGINE = MyISAM)
18insert into t1 values (999999.9999), (-999999.9999), (123456.7899), (-123456.7899), (-1.5), (1), (0), (-1), (1.5), (1234.567), (-1234.567);
19select * from t1;
20a
21-999999.9999
22-123456.7899
23-1234.5670
24-1.5000
25-1.0000
260.0000
271.0000
281.5000
291234.5670
30123456.7899
31999999.9999
32select * from t1 where a=1234.567;
33a
341234.5670
35delete from t1 where a=1234.567;
36select * from t1;
37a
38-999999.9999
39-123456.7899
40-1234.5670
41-1.5000
42-1.0000
430.0000
441.0000
451.5000
46123456.7899
47999999.9999
48drop table t1;
49create table t2 (a decimal(18,9) not null, primary key(a)) engine='MYISAM'
50partition by key (a) partitions 10;
51show create table t2;
52Table	Create Table
53t2	CREATE TABLE `t2` (
54  `a` decimal(18,9) NOT NULL,
55  PRIMARY KEY (`a`)
56) ENGINE=MyISAM DEFAULT CHARSET=latin1
57 PARTITION BY KEY (`a`)
58PARTITIONS 10
59insert into t2 values (999999999.999999999), (-999999999.999999999), (-1.5), (-1), (0), (1.5), (1234.567), (-1234.567);
60select * from t2;
61a
62-999999999.999999999
63-1234.567000000
64-1.500000000
65-1.000000000
660.000000000
671.500000000
681234.567000000
69999999999.999999999
70select * from t2 where a=1234.567;
71a
721234.567000000
73delete from t2 where a=1234.567;
74select * from t2;
75a
76-999999999.999999999
77-1234.567000000
78-1.500000000
79-1.000000000
800.000000000
811.500000000
82999999999.999999999
83delete from t2;
8465535*3 inserts;
85select count(*) from t2;
86count(*)
87196605
88drop table t2;
89create table t3 (a decimal(18,9) not null, primary key(a)) engine='MYISAM'
90partition by range (floor(a)) subpartition by key (a) subpartitions 2 (
91partition pa2 values less than (2),
92partition pa4 values less than (4),
93partition pa6 values less than (6),
94partition pa8 values less than (8),
95partition pa10 values less than (10)
96);
97show create table t3;
98Table	Create Table
99t3	CREATE TABLE `t3` (
100  `a` decimal(18,9) NOT NULL,
101  PRIMARY KEY (`a`)
102) ENGINE=MyISAM DEFAULT CHARSET=latin1
103 PARTITION BY RANGE (floor(`a`))
104SUBPARTITION BY KEY (`a`)
105SUBPARTITIONS 2
106(PARTITION `pa2` VALUES LESS THAN (2) ENGINE = MyISAM,
107 PARTITION `pa4` VALUES LESS THAN (4) ENGINE = MyISAM,
108 PARTITION `pa6` VALUES LESS THAN (6) ENGINE = MyISAM,
109 PARTITION `pa8` VALUES LESS THAN (8) ENGINE = MyISAM,
110 PARTITION `pa10` VALUES LESS THAN (10) ENGINE = MyISAM)
1119*3 inserts;
112select count(*) from t3;
113count(*)
11427
115drop table t3;
116create table t4 (a decimal(18,9) not null, primary key(a)) engine='MYISAM'
117partition by list (ceiling(a)) subpartition by key (a) subpartitions 2 (
118partition pa2 values in (1,2),
119partition pa4 values in (3,4),
120partition pa6 values in (5,6),
121partition pa8 values in (7,8),
122partition pa10 values in (9,10)
123);
124show create table t4;
125Table	Create Table
126t4	CREATE TABLE `t4` (
127  `a` decimal(18,9) NOT NULL,
128  PRIMARY KEY (`a`)
129) ENGINE=MyISAM DEFAULT CHARSET=latin1
130 PARTITION BY LIST (ceiling(`a`))
131SUBPARTITION BY KEY (`a`)
132SUBPARTITIONS 2
133(PARTITION `pa2` VALUES IN (1,2) ENGINE = MyISAM,
134 PARTITION `pa4` VALUES IN (3,4) ENGINE = MyISAM,
135 PARTITION `pa6` VALUES IN (5,6) ENGINE = MyISAM,
136 PARTITION `pa8` VALUES IN (7,8) ENGINE = MyISAM,
137 PARTITION `pa10` VALUES IN (9,10) ENGINE = MyISAM)
1389*3 inserts;
139select count(*) from t4;
140count(*)
14127
142drop table t4;
143