type_float.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:5k
- # Description
- # -----------
- # Numeric floating point.
- --disable_warnings
- drop table if exists t1,t2;
- --enable_warnings
- --replace_result e-0 e- e+0 e+
- SELECT 10,10.0,10.,.1e+2,100.0e-1;
- --replace_result e-00 e-0
- SELECT 6e-05, -6e-05, --6e-05, -6e-05+1.000000;
- SELECT 1e1,1.e1,1.0e1,1e+1,1.e+1,1.0e+1,1e-1,1.e-1,1.0e-1;
- SELECT 0.001e+1,0.001e-1, -0.001e+01,-0.001e-01;
- SELECT 123.23E+02,-123.23E-02,"123.23E+02"+0.0,"-123.23E-02"+0.0;
- SELECT 2147483647E+02,21474836.47E+06;
- create table t1 (f1 float(24),f2 float(52));
- # We mask out Privileges column because it differs for embedded server
- --replace_column 8 #
- show full columns from t1;
- insert into t1 values(10,10),(1e+5,1e+5),(1234567890,1234567890),(1e+10,1e+10),(1e+15,1e+15),(1e+20,1e+20),(1e+50,1e+50),(1e+150,1e+150);
- insert into t1 values(-10,-10),(1e-5,1e-5),(1e-10,1e-10),(1e-15,1e-15),(1e-20,1e-20),(1e-50,1e-50),(1e-150,1e-150);
- --replace_result e-0 e- e+0 e+
- select * from t1;
- drop table t1;
- create table t1 (datum double);
- insert into t1 values (0.5),(1.0),(1.5),(2.0),(2.5);
- select * from t1;
- select * from t1 where datum < 1.5;
- select * from t1 where datum > 1.5;
- select * from t1 where datum = 1.5;
- drop table t1;
- create table t1 (a decimal(7,3) not null, key (a));
- insert into t1 values ("0"),("-0.00"),("-0.01"),("-0.002"),("1");
- select a from t1 order by a;
- select min(a) from t1;
- drop table t1;
- #
- # BUG#3612, BUG#4393, BUG#4356, BUG#4394
- #
- create table t1 (c1 double, c2 varchar(20));
- insert t1 values (121,"16");
- select c1 + c1 * (c2 / 100) as col from t1;
- create table t2 select c1 + c1 * (c2 / 100) as col1, round(c1, 5) as col2, round(c1, 35) as col3, sqrt(c1*1e-15) col4 from t1;
- # Floats are a bit different in PS
- --disable_ps_protocol
- select * from t2;
- --enable_ps_protocol
- show create table t2;
- drop table t1,t2;
- # Bug #1022: When a table contains a 'float' field,
- # and one of the functions MAX, MIN, or AVG is used on that field,
- # the system crashes.
- create table t1 (a float);
- insert into t1 values (1);
- select max(a),min(a),avg(a) from t1;
- drop table t1;
- #
- # FLOAT/DOUBLE/DECIMAL handling
- #
- create table t1 (f float, f2 float(24), f3 float(6,2), d double, d2 float(53), d3 double(10,3), de decimal, de2 decimal(6), de3 decimal(5,2), n numeric, n2 numeric(8), n3 numeric(5,6));
- # We mask out Privileges column because it differs for embedded server
- --replace_column 8 #
- show full columns from t1;
- drop table t1;
- create table t1 (a decimal(7,3) not null, key (a));
- insert into t1 values ("0"),("-0.00"),("-0.01"),("-0.002"),("1");
- select a from t1 order by a;
- select min(a) from t1;
- drop table t1;
- create table t1 (a float(200,100), b double(200,100));
- insert t1 values (1.0, 2.0);
- select * from t1;
- show create table t1;
- drop table t1;
- #
- # float in a char(1) field
- #
- create table t1 (c20 char);
- insert into t1 values (5000.0);
- insert into t1 values (0.5e4);
- drop table t1;
- # Errors
- --error 1063
- create table t1 (f float(54)); # Should give an error
- --disable_warnings
- drop table if exists t1;
- --enable_warnings
- # Don't allow 'double unsigned' to be set to a negative value (Bug #7700)
- create table t1 (d1 double, d2 double unsigned);
- insert into t1 set d1 = -1.0;
- update t1 set d2 = d1;
- select * from t1;
- drop table t1;
- # Ensure that maximum values as the result of number of decimals
- # being specified in table schema are enforced (Bug #7361)
- create table t1 (f float(4,3));
- insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11");
- select * from t1;
- drop table if exists t1;
- create table t1 (f double(4,3));
- insert into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11");
- select * from t1;
- drop table if exists t1;
- # Check conversion of floats to character field (Bug #7774)
- create table t1 (c char(20));
- insert into t1 values (5e-28);
- select * from t1;
- drop table t1;
- create table t1 (c char(6));
- insert into t1 values (2e5),(2e6),(2e-4),(2e-5);
- select * from t1;
- drop table t1;
- #
- # Test of comparison of integer with float-in-range (Bug #7840)
- # This is needed because some ODBC applications (like Foxpro) uses
- # floats for everything.
- #
- CREATE TABLE t1 (
- reckey int unsigned NOT NULL,
- recdesc varchar(50) NOT NULL,
- PRIMARY KEY (reckey)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
- INSERT INTO t1 VALUES (108, 'Has 108 as key');
- INSERT INTO t1 VALUES (109, 'Has 109 as key');
- select * from t1 where reckey=108;
- select * from t1 where reckey=1.08E2;
- select * from t1 where reckey=109;
- select * from t1 where reckey=1.09E2;
- drop table t1;
- #
- # Bug #13372 (decimal union)
- #
- create table t1 (d double(10,1));
- create table t2 (d double(10,9));
- insert into t1 values ("100000000.0");
- insert into t2 values ("1.23456780");
- create table t3 select * from t2 union select * from t1;
- select * from t3;
- show create table t3;
- drop table t1, t2, t3;
- # End of 4.1 tests