MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
partition_float.inc
1 eval create table t1 (a float 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 (-3.402823466E+38), (3.402823466E+38), (-1.5), (-1), (0), (1), (1.5);
9 select * from t1;
10 select * from t1 where a=1.5;
11 delete from t1 where a=1.5;
12 select * from t1;
13 drop table t1;
14 
15 eval create table t2 (a float not null, primary key(a)) engine=$engine
16 partition by key (a) partitions 10;
17 show create table t2;
18 insert into t2 values (-3.402823466E+38), (-3.402823466E+37), (-123.456), (0), (1234546.789), (123.456), (1.5);
19 select * from t2;
20 #result set is empty: Not a bug with float!!
21 select * from t2 where a=123.456;
22 delete from t2 where a=123.456;
23 select * from t2;
24 select * from t2 where a=1.5;
25 delete from t2 where a=1.5;
26 select * from t2;
27 delete from t2;
28 let $count=$maxrows;
29 --echo $maxrows*3 inserts;
30 --disable_query_log
31 while ($count)
32 {
33 eval insert into t2 values ($count);
34 eval insert into t2 values ($count+0.33);
35 eval insert into t2 values ($count+0.75);
36 dec $count;
37 }
38 --enable_query_log
39 select count(*) from t2;
40 drop table t2;