1drop table if exists t1,t2; 2SELECT 10,10.0,10.,.1e+2,100.0e-1; 310 10.0 10. .1e+2 100.0e-1 410 10.0 10 10 10 5SELECT 6e-16, -6e-16, --6e-16, -6e-16+1.000000; 66e-16 -6e-16 --6e-16 -6e-16+1.000000 76e-16 -6e-16 6e-16 0.9999999999999994 8SELECT 1e1,1.e1,1.0e1,1e+1,1.e+1,1.0e+1,1e-1,1.e-1,1.0e-1; 91e1 1.e1 1.0e1 1e+1 1.e+1 1.0e+1 1e-1 1.e-1 1.0e-1 1010 10 10 10 10 10 0.1 0.1 0.1 11SELECT 0.001e+1,0.001e-1, -0.001e+01,-0.001e-01; 120.001e+1 0.001e-1 -0.001e+01 -0.001e-01 130.01 0.0001 -0.01 -0.0001 14SELECT 123.23E+02,-123.23E-02,"123.23E+02"+0.0,"-123.23E-02"+0.0; 15123.23E+02 -123.23E-02 "123.23E+02"+0.0 "-123.23E-02"+0.0 1612323 -1.2323 12323 -1.2323 17SELECT 2147483647E+02,21474836.47E+06; 182147483647E+02 21474836.47E+06 19214748364700 21474836470000 20create table t1 (f1 float(24),f2 float(52)); 21show full columns from t1; 22Field Type Collation Null Key Default Extra Privileges Comment 23f1 float NULL YES NULL # 24f2 double NULL YES NULL # 25insert 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); 26Warnings: 27Warning 1264 Out of range value for column 'f1' at row 7 28Warning 1264 Out of range value for column 'f1' at row 8 29insert 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); 30select * from t1; 31f1 f2 3210 10 33100000 100000 341234570000 1234567890 3510000000000 10000000000 361e15 1e15 371e20 1e20 383.40282e38 1e50 393.40282e38 1e150 40-10 -10 410.00001 0.00001 420.0000000001 0.0000000001 430.000000000000001 0.000000000000001 441e-20 1e-20 450 1e-50 460 1e-150 47drop table t1; 48create table t1 (datum double); 49insert into t1 values (0.5),(1.0),(1.5),(2.0),(2.5); 50select * from t1; 51datum 520.5 531 541.5 552 562.5 57select * from t1 where datum < 1.5; 58datum 590.5 601 61select * from t1 where datum > 1.5; 62datum 632 642.5 65select * from t1 where datum = 1.5; 66datum 671.5 68drop table t1; 69create table t1 (a decimal(7,3) not null, key (a)); 70insert into t1 values ("0"),("-0.00"),("-0.01"),("-0.002"),("1"); 71select a from t1 order by a; 72a 73-0.010 74-0.002 750.000 760.000 771.000 78select min(a) from t1; 79min(a) 80-0.010 81drop table t1; 82create table t1 (c1 double, c2 varchar(20)); 83insert t1 values (121,"16"); 84select c1 + c1 * (c2 / 100) as col from t1; 85col 86140.36 87create 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; 88select * from t2; 89col1 col2 col3 col4 90140.36 121.00000 121 0.00000034785054261852176 91show create table t2; 92Table Create Table 93t2 CREATE TABLE `t2` ( 94 `col1` double DEFAULT NULL, 95 `col2` double(22,5) DEFAULT NULL, 96 `col3` double DEFAULT NULL, 97 `col4` double DEFAULT NULL 98) ENGINE=MyISAM DEFAULT CHARSET=latin1 99drop table t1,t2; 100create table t1 (a float); 101insert into t1 values (1); 102select max(a),min(a),avg(a) from t1; 103max(a) min(a) avg(a) 1041 1 1 105drop table t1; 106create 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(7,6)); 107show full columns from t1; 108Field Type Collation Null Key Default Extra Privileges Comment 109f float NULL YES NULL # 110f2 float NULL YES NULL # 111f3 float(6,2) NULL YES NULL # 112d double NULL YES NULL # 113d2 double NULL YES NULL # 114d3 double(10,3) NULL YES NULL # 115de decimal(10,0) NULL YES NULL # 116de2 decimal(6,0) NULL YES NULL # 117de3 decimal(5,2) NULL YES NULL # 118n decimal(10,0) NULL YES NULL # 119n2 decimal(8,0) NULL YES NULL # 120n3 decimal(7,6) NULL YES NULL # 121drop table t1; 122create table t1 (a decimal(7,3) not null, key (a)); 123insert into t1 values ("0"),("-0.00"),("-0.01"),("-0.002"),("1"); 124select a from t1 order by a; 125a 126-0.010 127-0.002 1280.000 1290.000 1301.000 131select min(a) from t1; 132min(a) 133-0.010 134drop table t1; 135create table t1 (a float(200,100), b double(200,100)); 136ERROR 42000: Too big scale 100 specified for 'a'. Maximum is 30 137create table t1 (c20 char); 138insert ignore into t1 values (5000.0); 139Warnings: 140Warning 1265 Data truncated for column 'c20' at row 1 141insert ignore into t1 values (0.5e4); 142Warnings: 143Warning 1265 Data truncated for column 'c20' at row 1 144drop table t1; 145create table t1 (f float(54)); 146ERROR 42000: Incorrect column specifier for column 'f' 147drop table if exists t1; 148create table t1 (d1 double, d2 double unsigned); 149insert into t1 set d1 = -1.0; 150update ignore t1 set d2 = d1; 151Warnings: 152Warning 1264 Out of range value for column 'd2' at row 1 153select * from t1; 154d1 d2 155-1 0 156drop table t1; 157create table t1 (f float(4,3)); 158insert ignore into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); 159Warnings: 160Warning 1264 Out of range value for column 'f' at row 1 161Warning 1264 Out of range value for column 'f' at row 2 162Warning 1264 Out of range value for column 'f' at row 3 163Warning 1264 Out of range value for column 'f' at row 4 164Warning 1264 Out of range value for column 'f' at row 5 165Warning 1264 Out of range value for column 'f' at row 6 166select * from t1; 167f 168-9.999 169-9.999 170-9.999 1719.999 1729.999 1739.999 174drop table if exists t1; 175create table t1 (f double(4,3)); 176insert ignore into t1 values (-11.0),(-11),("-11"),(11.0),(11),("11"); 177Warnings: 178Warning 1264 Out of range value for column 'f' at row 1 179Warning 1264 Out of range value for column 'f' at row 2 180Warning 1264 Out of range value for column 'f' at row 3 181Warning 1264 Out of range value for column 'f' at row 4 182Warning 1264 Out of range value for column 'f' at row 5 183Warning 1264 Out of range value for column 'f' at row 6 184select * from t1; 185f 186-9.999 187-9.999 188-9.999 1899.999 1909.999 1919.999 192drop table if exists t1; 193create table t1 (c char(20)); 194insert into t1 values (5e-28); 195select * from t1; 196c 1975e-28 198drop table t1; 199create table t1 (c char(6)); 200insert into t1 values (2e5),(2e6),(2e-4),(2e-5); 201select * from t1; 202c 203200000 2042e6 2050.0002 2062e-5 207drop table t1; 208CREATE TABLE t1 ( 209reckey int unsigned NOT NULL, 210recdesc varchar(50) NOT NULL, 211PRIMARY KEY (reckey) 212) ENGINE=MyISAM DEFAULT CHARSET=latin1; 213INSERT INTO t1 VALUES (108, 'Has 108 as key'); 214INSERT INTO t1 VALUES (109, 'Has 109 as key'); 215select * from t1 where reckey=108; 216reckey recdesc 217108 Has 108 as key 218select * from t1 where reckey=1.08E2; 219reckey recdesc 220108 Has 108 as key 221select * from t1 where reckey=109; 222reckey recdesc 223109 Has 109 as key 224select * from t1 where reckey=1.09E2; 225reckey recdesc 226109 Has 109 as key 227drop table t1; 228create table t1 (d double(10,1)); 229create table t2 (d double(10,9)); 230insert into t1 values ("100000000.0"); 231insert into t2 values ("1.23456780"); 232create table t3 select * from t2 union select * from t1; 233select * from t3; 234d 2351.234567800 236100000000.000000000 237show create table t3; 238Table Create Table 239t3 CREATE TABLE `t3` ( 240 `d` double(18,9) DEFAULT NULL 241) ENGINE=MyISAM DEFAULT CHARSET=latin1 242drop table t1, t2, t3; 243create table t1 select 105213674794682365.00 + 0.0 x; 244show warnings; 245Level Code Message 246desc t1; 247Field Type Null Key Default Extra 248x decimal(21,2) NO NULL 249drop table t1; 250create table t1 select 0.0 x; 251desc t1; 252Field Type Null Key Default Extra 253x decimal(2,1) NO NULL 254create table t2 select 105213674794682365.00 y; 255desc t2; 256Field Type Null Key Default Extra 257y decimal(20,2) NO NULL 258create table t3 select x+y a from t1,t2; 259show warnings; 260Level Code Message 261desc t3; 262Field Type Null Key Default Extra 263a decimal(21,2) NO NULL 264drop table t1,t2,t3; 265select 1e-308, 1.00000001e-300, 100000000e-300; 2661e-308 1.00000001e-300 100000000e-300 2671e-308 1.00000001e-300 1e-292 268select 10e307; 26910e307 2701e308 271create table t1(a int, b double(8, 2)); 272insert into t1 values 273(1, 28.50), (1, 121.85), (1, 157.23), (1, 1351.00), (1, -1965.35), (1, 81.75), 274(1, 217.08), (1, 7.94), (4, 96.07), (4, 6404.65), (4, -6500.72), (2, 100.00), 275(5, 5.00), (5, -2104.80), (5, 2033.80), (5, 0.07), (5, 65.93), 276(3, -4986.24), (3, 5.00), (3, 4857.34), (3, 123.74), (3, 0.16), 277(6, -1695.31), (6, 1003.77), (6, 499.72), (6, 191.82); 278explain select sum(b) s from t1 group by a; 279id select_type table type possible_keys key key_len ref rows Extra 2801 SIMPLE t1 ALL NULL NULL NULL NULL 26 Using temporary; Using filesort 281select sum(b) s from t1 group by a; 282s 2830.00 284100.00 2850.00 286-0.00 287-0.00 2880.00 289select sum(b) s from t1 group by a having s <> 0; 290s 291100.00 292select sum(b) s from t1 group by a having s <> 0 order by s; 293s 294100.00 295select sum(b) s from t1 group by a having s <=> 0; 296s 2970.00 2980.00 299-0.00 300-0.00 3010.00 302select sum(b) s from t1 group by a having s <=> 0 order by s; 303s 304-0.00 305-0.00 3060.00 3070.00 3080.00 309alter table t1 add key (a, b); 310explain select sum(b) s from t1 group by a; 311id select_type table type possible_keys key key_len ref rows Extra 3121 SIMPLE t1 index NULL a 14 NULL 26 Using index 313select sum(b) s from t1 group by a; 314s 3150.00 316100.00 3170.00 318-0.00 3190.00 3200.00 321select sum(b) s from t1 group by a having s <> 0; 322s 323100.00 324select sum(b) s from t1 group by a having s <> 0 order by s; 325s 326100.00 327select sum(b) s from t1 group by a having s <=> 0; 328s 3290.00 3300.00 331-0.00 3320.00 3330.00 334select sum(b) s from t1 group by a having s <=> 0 order by s; 335s 336-0.00 3370.00 3380.00 3390.00 3400.00 341drop table t1; 342End of 4.1 tests 343create table t1 (s1 float(0,2)); 344ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 's1') 345create table t1 (s1 float(1,2)); 346ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 's1') 347CREATE TABLE t1 ( 348f1 real zerofill, 349f2 double zerofill, 350f3 float zerofill); 351INSERT INTO t1 VALUES ( 0.314152e+1, 0.314152e+1, 0.314152e+1); 352PREPARE stmt1 FROM 'select f1, f2, f3 FROM t1'; 353select f1, f2, f3 FROM t1; 354f1 f2 f3 3550000000000000003.14152 0000000000000003.14152 000003.14152 356select f1, f2, f3 FROM t1; 357f1 f2 f3 3580000000000000003.14152 0000000000000003.14152 000003.14152 359EXECUTE stmt1; 360f1 f2 f3 3610000000000000003.14152 0000000000000003.14152 000003.14152 362DROP TABLE t1; 363create table t1 (f1 double(200, 0)); 364insert into t1 values (1e199), (-1e199); 365insert into t1 values (1e200), (-1e200); 366insert ignore into t1 values (2e200), (-2e200); 367Warnings: 368Warning 1264 Out of range value for column 'f1' at row 1 369Warning 1264 Out of range value for column 'f1' at row 2 370select f1 + 0e0 from t1; 371f1 + 0e0 3721e199 373-1e199 3741e200 375-1e200 3761e200 377-1e200 378drop table t1; 379create table t1 (f1 float(30, 0)); 380insert into t1 values (1e29), (-1e29); 381insert into t1 values (1e30), (-1e30); 382insert ignore into t1 values (2e30), (-2e30); 383Warnings: 384Warning 1264 Out of range value for column 'f1' at row 1 385Warning 1264 Out of range value for column 'f1' at row 2 386select f1 + 0e0 from t1; 387f1 + 0e0 3881.0000000150474662e29 389-1.0000000150474662e29 3901.0000000150474662e30 391-1.0000000150474662e30 3921.0000000150474662e30 393-1.0000000150474662e30 394drop table t1; 395create table t1 (c char(6)); 396insert into t1 values (2e6),(2e-5); 397select * from t1; 398c 3992e6 4002e-5 401drop table t1; 402CREATE TABLE d1 (d DOUBLE); 403INSERT INTO d1 VALUES (1.7976931348623157E+308); 404SELECT * FROM d1; 405d 4061.7976931348623157e308 407INSERT INTO d1 VALUES (1.79769313486232e+308); 408ERROR 22007: Illegal double '1.79769313486232e+308' value found during parsing 409SELECT * FROM d1; 410d 4111.7976931348623157e308 412DROP TABLE d1; 413create table t1 (a char(20)); 414insert into t1 values (1.225e-05); 415select a+0 from t1; 416a+0 4170.00001225 418drop table t1; 419create table t1(d double, u bigint unsigned); 420insert into t1(d) values (9.22337203685479e18), 421(1.84e19); 422update t1 set u = d; 423select u from t1; 424u 4259223372036854790144 42618400000000000000000 427drop table t1; 428CREATE TABLE t1 (f1 DOUBLE); 429INSERT INTO t1 VALUES(-1.79769313486231e+308); 430SELECT f1 FROM t1; 431f1 432-1.79769313486231e308 433DROP TABLE t1; 434# 435# Bug#12406055 BUFFER OVERFLOW OF VARIABLE 'BUFF' IN STRING::SET_REAL 436# 437# Ignoring output from misc. float operations 438select format(-1.7976931348623157E+307,256) as foo; 439select least(-1.1111111111111111111111111, 440- group_concat(1.7976931348623157E+308)) as foo; 441select concat((truncate((-1.7976931348623157E+307),(0x1e))), 442(99999999999999999999999999999999999999999999999999999999999999999)) into @a; 443End of 5.0 tests 444# 445# Bug#12368853 FORMAT() CRASHES WITH LARGE NUMBERS AFTER TRUNCATE... 446# 447select format(truncate('1.7976931348623157E+308',-12),1,'fr_BE') as foo; 448foo 4490 450# 451# MDEV-17249 MAKETIME(-1e50,0,0) returns a wrong result 452# 453SELECT LEFT('a',EXP(50)); 454LEFT('a',EXP(50)) 455a 456SELECT LEFT('a', COALESCE(1e30)); 457LEFT('a', COALESCE(1e30)) 458a 459CREATE TABLE t1 (a FLOAT); 460INSERT INTO t1 VALUES (1e30); 461SELECT LEFT('a',a), LEFT('a',1e30) FROM t1; 462LEFT('a',a) LEFT('a',1e30) 463a a 464DROP TABLE t1; 465PREPARE stmt FROM 'SELECT LEFT(111,?)'; 466SET @a=1e30; 467EXECUTE stmt USING @a; 468LEFT(111,?) 469111 470DEALLOCATE PREPARE stmt; 471CREATE TABLE t1 (a INT); 472INSERT INTO t1 VALUES (1),(2),(3); 473SELECT LEFT('a',(SELECT 1e30 FROM t1 LIMIT 1)); 474LEFT('a',(SELECT 1e30 FROM t1 LIMIT 1)) 475a 476DROP TABLE t1; 477CREATE TABLE t1 (a DOUBLE); 478INSERT INTO t1 VALUES (1e30),(0); 479SELECT LEFT('a', SUM(a)) FROM t1; 480LEFT('a', SUM(a)) 481a 482Warnings: 483Warning 1916 Got overflow when converting '1e30' to INT. Value truncated 484SELECT LEFT('a', AVG(a)) FROM t1; 485LEFT('a', AVG(a)) 486a 487Warnings: 488Warning 1916 Got overflow when converting '5e29' to INT. Value truncated 489DROP TABLE t1; 490# 491# Bug #13500371 63704: CONVERSION OF '1.' TO A NUMBER GIVES ERROR 1265 492# (WARN_DATA_TRUNCATED) 493# 494CREATE TABLE t1 (f FLOAT); 495INSERT INTO t1 VALUES ('1.'); 496INSERT IGNORE INTO t1 VALUES ('2.0.'); 497Warnings: 498Warning 1265 Data truncated for column 'f' at row 1 499INSERT IGNORE INTO t1 VALUES ('.'); 500Warnings: 501Warning 1366 Incorrect double value: '.' for column `test`.`t1`.`f` at row 1 502SELECT * FROM t1 ORDER BY f; 503f 5040 5051 5062 507DROP TABLE t1; 508# 509# Start of 10.0 tests 510# 511# 512# MDEV-6950 Bad results with joins comparing DATE/DATETIME and INT/DECIMAL/DOUBLE/ENUM/VARCHAR columns 513# 514CREATE TABLE t1 (a DATETIME PRIMARY KEY); 515INSERT INTO t1 VALUES ('1999-01-01 00:00:00'); 516CREATE TABLE t2 (a DOUBLE); 517INSERT INTO t2 VALUES (19990101000000); 518INSERT INTO t2 VALUES (990101000000); 519SELECT t1.* FROM t1,t2 WHERE t1.a=t2.a; 520a 5211999-01-01 00:00:00 5221999-01-01 00:00:00 523SELECT t1.* FROM t1 LEFT JOIN t2 ON t1.a=t2.a; 524a 5251999-01-01 00:00:00 5261999-01-01 00:00:00 527ALTER TABLE t2 ADD PRIMARY KEY(a); 528SELECT t1.* FROM t1,t2 WHERE t1.a=t2.a; 529a 5301999-01-01 00:00:00 5311999-01-01 00:00:00 532SELECT t1.* FROM t1 LEFT JOIN t2 ON t1.a=t2.a; 533a 5341999-01-01 00:00:00 5351999-01-01 00:00:00 536# t2 should NOT be eliminated 537EXPLAIN SELECT t1.* FROM t1 LEFT JOIN t2 ON t1.a=t2.a; 538id select_type table type possible_keys key key_len ref rows Extra 5391 SIMPLE t1 system NULL NULL NULL NULL 1 5401 SIMPLE t2 index PRIMARY PRIMARY 8 NULL 2 Using where; Using index 541DROP TABLE t1,t2; 542# 543# MDEV-6971 Bad results with joins comparing TIME and DOUBLE/DECIMAL columns 544# 545CREATE TABLE t1 (a TIME(6) PRIMARY KEY); 546INSERT INTO t1 VALUES ('10:20:30'); 547CREATE TABLE t2 (a DOUBLE); 548INSERT INTO t2 VALUES (102030),(102030.000000001); 549SELECT t1.* FROM t1 JOIN t2 USING(a); 550a 55110:20:30.000000 55210:20:30.000000 553SELECT t1.* FROM t1 LEFT JOIN t2 USING(a); 554a 55510:20:30.000000 55610:20:30.000000 557ALTER TABLE t2 ADD PRIMARY KEY(a); 558SELECT t1.* FROM t1 JOIN t2 USING(a); 559a 56010:20:30.000000 56110:20:30.000000 562SELECT t1.* FROM t1 LEFT JOIN t2 USING(a); 563a 56410:20:30.000000 56510:20:30.000000 566# t2 should NOT be elimitated 567EXPLAIN SELECT t1.* FROM t1 LEFT JOIN t2 USING(a); 568id select_type table type possible_keys key key_len ref rows Extra 5691 SIMPLE t1 system NULL NULL NULL NULL 1 5701 SIMPLE t2 index PRIMARY PRIMARY 8 NULL 2 Using where; Using index 571DROP TABLE t1,t2; 572# 573# End of 10.0 tests 574# 575# 576# MDEV-8704 Wrong result for SELECT..WHERE LENGTH(double_column)!=6 AND double_column=100e0 577# 578CREATE TABLE t1 (a DOUBLE(9,2)); 579INSERT INTO t1 VALUES (100),(110); 580SELECT * FROM t1 WHERE LENGTH(a)!=6; 581a 582SELECT * FROM t1 WHERE LENGTH(a)!=6 AND a=100e0; 583a 584DROP TABLE t1; 585CREATE TABLE t1 (a DOUBLE); 586INSERT INTO t1 VALUES (100),(110); 587SELECT * FROM t1 WHERE LENGTH(a)!=6; 588a 589100 590110 591SELECT * FROM t1 WHERE LENGTH(a)!=6 AND a=100e0; 592a 593100 594EXPLAIN EXTENDED 595SELECT * FROM t1 WHERE LENGTH(a)!=6 AND a=100e0; 596id select_type table type possible_keys key key_len ref rows filtered Extra 5971 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where 598Warnings: 599Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 100e0 600EXPLAIN EXTENDED 601SELECT * FROM t1 WHERE LENGTH(a)!=RAND() AND a=100e0; 602id select_type table type possible_keys key key_len ref rows filtered Extra 6031 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where 604Warnings: 605Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 100e0 and <cache>(octet_length(100)) <> rand() 606DROP TABLE t1; 607CREATE TABLE t1 (a DOUBLE(10,1)); 608INSERT INTO t1 VALUES (1.1),(1.2),(1.3); 609SELECT * FROM t1 WHERE LENGTH(a)!=3; 610a 611SELECT * FROM t1 WHERE LENGTH(a)!=3 AND a=1.10e0; 612a 613EXPLAIN EXTENDED 614SELECT * FROM t1 WHERE LENGTH(a)!=3 AND a=1.10e0; 615id select_type table type possible_keys key key_len ref rows filtered Extra 6161 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE 617Warnings: 618Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where 0 619# Notice 1.1 instead of 1.10 in the final WHERE condition 620EXPLAIN EXTENDED 621SELECT * FROM t1 WHERE LENGTH(a)!=RAND() AND a=1.10e0; 622id select_type table type possible_keys key key_len ref rows filtered Extra 6231 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where 624Warnings: 625Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 1.10e0 and <cache>(octet_length(1.1)) <> rand() 626DROP TABLE t1; 627CREATE TABLE t1 (a DOUBLE(10,2)); 628INSERT INTO t1 VALUES (1.1),(1.2),(1.3); 629SELECT * FROM t1 WHERE LENGTH(a)!=4; 630a 631SELECT * FROM t1 WHERE LENGTH(a)!=4 AND a=1.10e0; 632a 633EXPLAIN EXTENDED 634SELECT * FROM t1 WHERE LENGTH(a)!=4 AND a=1.10e0; 635id select_type table type possible_keys key key_len ref rows filtered Extra 6361 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE 637Warnings: 638Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where 0 639# Notice 1.10 in the final WHERE condition 640EXPLAIN EXTENDED 641SELECT * FROM t1 WHERE LENGTH(a)!=RAND() AND a=1.10e0; 642id select_type table type possible_keys key key_len ref rows filtered Extra 6431 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where 644Warnings: 645Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 1.10e0 and <cache>(octet_length(1.10)) <> rand() 646DROP TABLE t1; 647CREATE TABLE t1 (a DOUBLE(10,3)); 648INSERT INTO t1 VALUES (1.1),(1.2),(1.3); 649SELECT * FROM t1 WHERE LENGTH(a)!=5; 650a 651SELECT * FROM t1 WHERE LENGTH(a)!=5 AND a=1.10e0; 652a 653EXPLAIN EXTENDED 654SELECT * FROM t1 WHERE LENGTH(a)!=5 AND a=1.10e0; 655id select_type table type possible_keys key key_len ref rows filtered Extra 6561 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE 657Warnings: 658Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where 0 659# Notice 1.100 rather than 1.10 in the final WHERE condition 660EXPLAIN EXTENDED 661SELECT * FROM t1 WHERE LENGTH(a)!=RAND() AND a=1.10e0; 662id select_type table type possible_keys key key_len ref rows filtered Extra 6631 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where 664Warnings: 665Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 1.10e0 and <cache>(octet_length(1.100)) <> rand() 666DROP TABLE t1; 667# 668# MDEV-8741 Equal field propagation leaves some remainders after simplifying WHERE zerofill_column=2010 AND zerofill_column>=2010 669# 670CREATE TABLE t1 (a DOUBLE ZEROFILL); 671INSERT INTO t1 VALUES (2010),(2020); 672EXPLAIN EXTENDED SELECT * FROM t1 WHERE a=2010e0 AND a>=2010e0; 673id select_type table type possible_keys key key_len ref rows filtered Extra 6741 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where 675Warnings: 676Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where `test`.`t1`.`a` = 2010e0 677DROP TABLE t1; 678# 679# MDEV-23282 FLOAT(53,0) badly handles out-of-range values 680# 681CREATE OR REPLACE TABLE t1 (c1 FLOAT NOT NULL, c2 FLOAT NOT NULL); 682INSERT IGNORE INTO t1 VALUES (1e+40, -1e+40); 683Warnings: 684Warning 1264 Out of range value for column 'c1' at row 1 685Warning 1264 Out of range value for column 'c2' at row 1 686SELECT c1, c2 FROM t1; 687c1 c2 6883.40282e38 -3.40282e38 689DROP TABLE t1; 690CREATE OR REPLACE TABLE t1 (c1 FLOAT(53,0) NOT NULL, c2 FLOAT(53,0) NOT NULL); 691INSERT IGNORE INTO t1 VALUES (1e+40, -1e+40); 692Warnings: 693Warning 1264 Out of range value for column 'c1' at row 1 694Warning 1264 Out of range value for column 'c2' at row 1 695SELECT c1, c2 FROM t1; 696c1 c2 697340282346638528860000000000000000000000 -340282346638528860000000000000000000000 698DROP TABLE t1; 699# 700# End of 10.1 tests 701# 702# 703# Start of 10.2 tests 704# 705# 706# MDEV-4102 Limitation on DOUBLE or REAL length is ignored with INSERT .. SELECT 707# 708CREATE TABLE t1 (d1 DOUBLE(5,2), d2 DOUBLE(10,2)); 709INSERT IGNORE INTO t1 VALUES (10000000.55, 10000000.55); 710Warnings: 711Warning 1264 Out of range value for column 'd1' at row 1 712INSERT IGNORE INTO t1 SELECT d2, d2 FROM t1; 713Warnings: 714Warning 1264 Out of range value for column 'd1' at row 1 715SELECT * FROM t1; 716d1 d2 717999.99 10000000.55 718999.99 10000000.55 719DROP TABLE t1; 720# 721# MDEV-9709 Unexpected modification of value and warning about out of range value upon ALTER 722# 723CREATE TABLE t1 ( 724f FLOAT, 725d10_10 DOUBLE PRECISION (10,10), 726d53_10 DOUBLE(53,10) 727); 728INSERT IGNORE INTO t1 (f,d10_10,d53_10) VALUES ( 729-9999999999999999999999999999999999999999999.9999999999, 730-9999999999999999999999999999999999999999999.9999999999, 731-9999999999999999999999999999999999999999999.9999999999 732); 733Warnings: 734Warning 1264 Out of range value for column 'f' at row 1 735Warning 1264 Out of range value for column 'd10_10' at row 1 736SELECT * FROM t1; 737f -3.40282e38 738d10_10 -0.9999999999 739d53_10 -10000000000000000000000000000000000000000000.0000000000 740INSERT IGNORE INTO t1 (f,d10_10,d53_10) SELECT d53_10, d53_10, d53_10 FROM t1; 741Warnings: 742Level Warning 743Code 1264 744Message Out of range value for column 'f' at row 1 745Level Warning 746Code 1264 747Message Out of range value for column 'd10_10' at row 1 748SELECT * FROM t1; 749f -3.40282e38 750d10_10 -0.9999999999 751d53_10 -10000000000000000000000000000000000000000000.0000000000 752f -3.40282e38 753d10_10 -0.9999999999 754d53_10 -10000000000000000000000000000000000000000000.0000000000 755ALTER TABLE t1 ADD COLUMN i INT; 756SELECT * FROM t1; 757f -3.40282e38 758d10_10 -0.9999999999 759d53_10 -10000000000000000000000000000000000000000000.0000000000 760i NULL 761f -3.40282e38 762d10_10 -0.9999999999 763d53_10 -10000000000000000000000000000000000000000000.0000000000 764i NULL 765DROP TABLE t1; 766CREATE TABLE t1 (d10_10 DOUBLE (10,10)); 767CREATE TABLE t2 (d53_10 DOUBLE (53,10)); 768INSERT INTO t2 VALUES (-9999999999999999999999999999999999999999999.9999999999); 769INSERT IGNORE INTO t1 (d10_10) SELECT d53_10 FROM t2; 770Warnings: 771Warning 1264 Out of range value for column 'd10_10' at row 1 772SELECT * FROM t1; 773d10_10 774-0.9999999999 775DROP TABLE t1,t2; 776CREATE TABLE t1 (d2_2 FLOAT (2,2)); 777CREATE TABLE t2 (d4_2 FLOAT (4,2)); 778INSERT INTO t2 VALUES (99.99); 779INSERT IGNORE INTO t1 (d2_2) SELECT d4_2 FROM t2; 780Warnings: 781Warning 1264 Out of range value for column 'd2_2' at row 1 782SELECT * FROM t1; 783d2_2 7840.99 785DROP TABLE t1,t2; 786# 787# Test of using wrong scale 788# 789create or replace table t1 (a double(40,30)); 790create or replace table t1 (a double(40,31)); 791ERROR 42000: Too big scale 31 specified for 'a'. Maximum is 30 792create or replace table t1 as select 1.01e1; 793show create table t1; 794Table Create Table 795t1 CREATE TABLE `t1` ( 796 `1.01e1` double NOT NULL 797) ENGINE=MyISAM DEFAULT CHARSET=latin1 798create or replace table t1 as select truncate(10.000000000001e1, 30) as t; 799show create table t1; 800Table Create Table 801t1 CREATE TABLE `t1` ( 802 `t` double(47,30) NOT NULL 803) ENGINE=MyISAM DEFAULT CHARSET=latin1 804create or replace table t1 as select truncate(10.000000000001e1, 31) as t; 805show create table t1; 806Table Create Table 807t1 CREATE TABLE `t1` ( 808 `t` double NOT NULL 809) ENGINE=MyISAM DEFAULT CHARSET=latin1 810create or replace table t1 as select truncate(10.000000000001e1, 39) as t; 811show create table t1; 812Table Create Table 813t1 CREATE TABLE `t1` ( 814 `t` double NOT NULL 815) ENGINE=MyISAM DEFAULT CHARSET=latin1 816create or replace table t1 as select truncate(10.000000000001e1, 51) as t; 817show create table t1; 818Table Create Table 819t1 CREATE TABLE `t1` ( 820 `t` double NOT NULL 821) ENGINE=MyISAM DEFAULT CHARSET=latin1 822create or replace table t1 as select truncate(10.000000000001e1, 20)/2 as t; 823show create table t1; 824Table Create Table 825t1 CREATE TABLE `t1` ( 826 `t` double(41,24) DEFAULT NULL 827) ENGINE=MyISAM DEFAULT CHARSET=latin1 828create or replace table t1 as select truncate(10.000000000001e1, 28)/2 as t; 829show create table t1; 830Table Create Table 831t1 CREATE TABLE `t1` ( 832 `t` double DEFAULT NULL 833) ENGINE=MyISAM DEFAULT CHARSET=latin1 834drop table if exists t1; 835# 836# MDEV-11586 UNION of FLOAT type results in erroneous precision 837# 838CREATE TABLE t1 (f FLOAT); 839INSERT INTO t1 VALUES (1.1); 840SELECT f FROM t1 UNION SELECT 1; 841f 8421.100000023841858 8431 844SELECT 1 UNION SELECT f FROM t1; 8451 8461 8471.100000023841858 848SELECT f FROM t1 UNION SELECT 2147483647; 849f 8501.100000023841858 8512147483647 852SELECT 2147483647 UNION SELECT f FROM t1; 8532147483647 8542147483647 8551.100000023841858 856SELECT CASE WHEN 0 THEN (SELECT f FROM t1) ELSE 2147483647 END AS c1, 857CASE WHEN 1 THEN 2147483647 ELSE (SELECT f FROM t1) END AS c2; 858c1 c2 8592147483647 2147483647 860DROP TABLE t1; 861# 862# End of 10.2 tests 863# 864# 865# MDEV-19468 Hybrid type expressions return wrong format for FLOAT 866# 867CREATE TABLE t1 (a FLOAT); 868INSERT INTO t1 VALUES (0.671437); 869SELECT a, COALESCE(a), MAX(a), LEAST(a,a), (SELECT a FROM t1) AS c FROM t1; 870a COALESCE(a) MAX(a) LEAST(a,a) c 8710.671437 0.671437 0.671437 0.671437 0.671437 872DROP TABLE t1; 873CREATE TABLE t1 (a FLOAT); 874INSERT INTO t1 VALUES (0.671437); 875SELECT 876CONCAT(a), 877CONCAT(COALESCE(a)), 878CONCAT(LEAST(a,a)), 879CONCAT(MAX(a)), 880CONCAT((SELECT a FROM t1)) AS c 881FROM t1; 882CONCAT(a) CONCAT(COALESCE(a)) CONCAT(LEAST(a,a)) CONCAT(MAX(a)) c 8830.671437 0.671437 0.671437 0.671437 0.671437 884CREATE TABLE t2 AS SELECT 885CONCAT(a), 886CONCAT(COALESCE(a)), 887CONCAT(LEAST(a,a)), 888CONCAT(MAX(a)), 889CONCAT((SELECT a FROM t1)) AS c 890FROM t1; 891SELECT * FROM t2; 892CONCAT(a) CONCAT(COALESCE(a)) CONCAT(LEAST(a,a)) CONCAT(MAX(a)) c 8930.671437 0.671437 0.671437 0.671437 0.671437 894DROP TABLE t1, t2; 895# 896# MDEV-16872 Add CAST(expr AS FLOAT) 897# 898SELECT CAST(0.671437 AS FLOAT), CONCAT(CAST(0.671437 AS FLOAT)); 899CAST(0.671437 AS FLOAT) CONCAT(CAST(0.671437 AS FLOAT)) 9000.671437 0.671437 901SELECT CAST(1e40 AS FLOAT), CONCAT(CAST(1e40 AS FLOAT)); 902CAST(1e40 AS FLOAT) CONCAT(CAST(1e40 AS FLOAT)) 9033.40282e38 3.40282e38 904Warnings: 905Note 1264 Out of range value for column 'CAST(1e40 AS FLOAT)' at row 1 906Note 1264 Out of range value for column 'CAST(1e40 AS FLOAT)' at row 1 907SELECT CAST(-1e40 AS FLOAT), CONCAT(CAST(-1e40 AS FLOAT)); 908CAST(-1e40 AS FLOAT) CONCAT(CAST(-1e40 AS FLOAT)) 909-3.40282e38 -3.40282e38 910Warnings: 911Note 1264 Out of range value for column 'CAST(-1e40 AS FLOAT)' at row 1 912Note 1264 Out of range value for column 'CAST(-1e40 AS FLOAT)' at row 1 913SET sql_mode='STRICT_ALL_TABLES,STRICT_TRANS_TABLES'; 914CREATE TABLE t1 (a FLOAT); 915INSERT INTO t1 VALUES (CAST(1e40 AS FLOAT)); 916Warnings: 917Note 1264 Out of range value for column 'CAST(1e40 AS FLOAT)' at row 1 918SELECT * FROM t1; 919a 9203.40282e38 921DROP TABLE t1; 922SET sql_mode=DEFAULT; 923EXPLAIN EXTENDED SELECT CAST(0.671437 AS FLOAT); 924id select_type table type possible_keys key key_len ref rows filtered Extra 9251 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used 926Warnings: 927Note 1003 select cast(0.671437 as float) AS `CAST(0.671437 AS FLOAT)` 928CREATE TABLE t1 AS SELECT CAST(0.671437 AS FLOAT) AS c1; 929SHOW CREATE TABLE t1; 930Table Create Table 931t1 CREATE TABLE `t1` ( 932 `c1` float DEFAULT NULL 933) ENGINE=MyISAM DEFAULT CHARSET=latin1 934SELECT * FROM t1; 935c1 9360.671437 937DROP TABLE t1; 938CREATE TABLE t1 (a FLOAT); 939CREATE TABLE t2 AS SELECT CONCAT(a) AS c1, CONCAT(CAST(a AS FLOAT)) AS c2 FROM t1; 940SHOW CREATE TABLE t2; 941Table Create Table 942t2 CREATE TABLE `t2` ( 943 `c1` varchar(12) DEFAULT NULL, 944 `c2` varchar(12) DEFAULT NULL 945) ENGINE=MyISAM DEFAULT CHARSET=latin1 946DROP TABLE t1, t2; 947CREATE TABLE t1 (a FLOAT DEFAULT CAST(0.671437 AS FLOAT)); 948SHOW CREATE TABLE t1; 949Table Create Table 950t1 CREATE TABLE `t1` ( 951 `a` float DEFAULT (cast(0.671437 as float)) 952) ENGINE=MyISAM DEFAULT CHARSET=latin1 953DROP TABLE t1; 954CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY, a FLOAT); 955INSERT INTO t1 VALUES (1, 0.671437),(2, 0.671437); 956DELETE FROM t1 WHERE a=0.671437; 957SELECT * FROM t1; 958id a 9591 0.671437 9602 0.671437 961DELETE FROM t1 WHERE a=CAST(0.671437 AS FLOAT); 962DROP TABLE t1; 963# 964# End of 10.3 tests 965# 966# 967# MDEV-11362 True condition elimination does not work for DECIMAL and temporal dynamic SQL parameters 968# 969CREATE TABLE t1 (a DOUBLE); 970INSERT INTO t1 VALUES (1),(2),(3); 971EXPLAIN EXTENDED SELECT * FROM t1 WHERE 1e0+a<=>1e0+a; 972id select_type table type possible_keys key key_len ref rows filtered Extra 9731 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 974Warnings: 975Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where 1 976EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT * FROM t1 WHERE ?+a<=>?+a' USING 1e0,1e0; 977id select_type table type possible_keys key key_len ref rows filtered Extra 9781 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 979Warnings: 980Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where 1 981EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT * FROM t1 WHERE ?+a<=>1e0+a' USING 1e0; 982id select_type table type possible_keys key key_len ref rows filtered Extra 9831 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 984Warnings: 985Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where 1 986EXECUTE IMMEDIATE 'EXPLAIN EXTENDED SELECT * FROM t1 WHERE 1e0+a<=>?+a' USING 1e0; 987id select_type table type possible_keys key key_len ref rows filtered Extra 9881 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 989Warnings: 990Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where 1 991DROP TABLE t1; 992# 993# MDEV-23415 Server crash or Assertion `dec_length <= str_length' failed in Item_func_format::val_str_ascii 994# 995SELECT FORMAT('0', 50, 'de_DE'); 996FORMAT('0', 50, 'de_DE') 9970,00000000000000000000000000000000000000 998SELECT FORMAT(0e0, 50, 'de_DE'); 999FORMAT(0e0, 50, 'de_DE') 10000,00000000000000000000000000000000000000 1001FOR d IN 0..50 1002DO 1003SELECT 1004d, 1005FORMAT(123456789.123456789e0, d, 'de_DE') AS fdbl, 1006FORMAT(123456789.123456789, d, 'de_DE') AS fdec; 1007END FOR; 1008$$ 1009d 0 1010fdbl 123.456.789 1011fdec 123.456.789 1012d 1 1013fdbl 123.456.789,1 1014fdec 123.456.789,1 1015d 2 1016fdbl 123.456.789,12 1017fdec 123.456.789,12 1018d 3 1019fdbl 123.456.789,123 1020fdec 123.456.789,123 1021d 4 1022fdbl 123.456.789,1235 1023fdec 123.456.789,1235 1024d 5 1025fdbl 123.456.789,12346 1026fdec 123.456.789,12346 1027d 6 1028fdbl 123.456.789,123457 1029fdec 123.456.789,123457 1030d 7 1031fdbl 123.456.789,1234568 1032fdec 123.456.789,1234568 1033d 8 1034fdbl 123.456.789,12345680 1035fdec 123.456.789,12345679 1036d 9 1037fdbl 123.456.789,123456790 1038fdec 123.456.789,123456789 1039d 10 1040fdbl 123.456.789,1234567900 1041fdec 123.456.789,1234567890 1042d 11 1043fdbl 123.456.789,12345680000 1044fdec 123.456.789,12345678900 1045d 12 1046fdbl 123.456.789,123456790000 1047fdec 123.456.789,123456789000 1048d 13 1049fdbl 123.456.789,1234568000000 1050fdec 123.456.789,1234567890000 1051d 14 1052fdbl 123.456.789,12345679000000 1053fdec 123.456.789,12345678900000 1054d 15 1055fdbl 123.456.789,123456790000000 1056fdec 123.456.789,123456789000000 1057d 16 1058fdbl 123.456.789,1234567800000000 1059fdec 123.456.789,1234567890000000 1060d 17 1061fdbl 123.456.789,12345679000000000 1062fdec 123.456.789,12345678900000000 1063d 18 1064fdbl 123.456.789,123456790000000000 1065fdec 123.456.789,123456789000000000 1066d 19 1067fdbl 123.456.789,1234567900000000000 1068fdec 123.456.789,1234567890000000000 1069d 20 1070fdbl 123.456.789,12345679000000000000 1071fdec 123.456.789,12345678900000000000 1072d 21 1073fdbl 123.456.789,123456800000000000000 1074fdec 123.456.789,123456789000000000000 1075d 22 1076fdbl 123.456.789,1234567900000000000000 1077fdec 123.456.789,1234567890000000000000 1078d 23 1079fdbl 123.456.789,12345680000000000000000 1080fdec 123.456.789,12345678900000000000000 1081d 24 1082fdbl 123.456.789,123456790000000000000000 1083fdec 123.456.789,123456789000000000000000 1084d 25 1085fdbl 123.456.789,1234567900000000000000000 1086fdec 123.456.789,1234567890000000000000000 1087d 26 1088fdbl 123.456.789,12345679000000000000000000 1089fdec 123.456.789,12345678900000000000000000 1090d 27 1091fdbl 123.456.789,123456780000000000000000000 1092fdec 123.456.789,123456789000000000000000000 1093d 28 1094fdbl 123.456.789,1234567900000000000000000000 1095fdec 123.456.789,1234567890000000000000000000 1096d 29 1097fdbl 123.456.789,12345678000000000000000000000 1098fdec 123.456.789,12345678900000000000000000000 1099d 30 1100fdbl 123.456.789,123456790000000000000000000000 1101fdec 123.456.789,123456789000000000000000000000 1102d 31 1103fdbl 123.456.789,1234567900000000000000000000000 1104fdec 123.456.789,1234567890000000000000000000000 1105d 32 1106fdbl 123.456.789,12345679000000000000000000000000 1107fdec 123.456.789,12345678900000000000000000000000 1108d 33 1109fdbl 123.456.789,123456790000000000000000000000000 1110fdec 123.456.789,123456789000000000000000000000000 1111d 34 1112fdbl 123.456.789,1234567900000000000000000000000000 1113fdec 123.456.789,1234567890000000000000000000000000 1114d 35 1115fdbl 123.456.789,12345679000000000000000000000000000 1116fdec 123.456.789,12345678900000000000000000000000000 1117d 36 1118fdbl 123.456.789,123456790000000000000000000000000000 1119fdec 123.456.789,123456789000000000000000000000000000 1120d 37 1121fdbl 123.456.789,1234567900000000000000000000000000000 1122fdec 123.456.789,1234567890000000000000000000000000000 1123d 38 1124fdbl 123.456.789,12345678000000000000000000000000000000 1125fdec 123.456.789,12345678900000000000000000000000000000 1126d 39 1127fdbl 123.456.789,12345678000000000000000000000000000000 1128fdec 123.456.789,12345678900000000000000000000000000000 1129d 40 1130fdbl 123.456.789,12345678000000000000000000000000000000 1131fdec 123.456.789,12345678900000000000000000000000000000 1132d 41 1133fdbl 123.456.789,12345678000000000000000000000000000000 1134fdec 123.456.789,12345678900000000000000000000000000000 1135d 42 1136fdbl 123.456.789,12345678000000000000000000000000000000 1137fdec 123.456.789,12345678900000000000000000000000000000 1138d 43 1139fdbl 123.456.789,12345678000000000000000000000000000000 1140fdec 123.456.789,12345678900000000000000000000000000000 1141d 44 1142fdbl 123.456.789,12345678000000000000000000000000000000 1143fdec 123.456.789,12345678900000000000000000000000000000 1144d 45 1145fdbl 123.456.789,12345678000000000000000000000000000000 1146fdec 123.456.789,12345678900000000000000000000000000000 1147d 46 1148fdbl 123.456.789,12345678000000000000000000000000000000 1149fdec 123.456.789,12345678900000000000000000000000000000 1150d 47 1151fdbl 123.456.789,12345678000000000000000000000000000000 1152fdec 123.456.789,12345678900000000000000000000000000000 1153d 48 1154fdbl 123.456.789,12345678000000000000000000000000000000 1155fdec 123.456.789,12345678900000000000000000000000000000 1156d 49 1157fdbl 123.456.789,12345678000000000000000000000000000000 1158fdec 123.456.789,12345678900000000000000000000000000000 1159d 50 1160fdbl 123.456.789,12345678000000000000000000000000000000 1161fdec 123.456.789,12345678900000000000000000000000000000 1162# 1163# End of 10.4 tests 1164# 1165