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