mirror of
https://github.com/MariaDB/server.git
synced 2025-11-12 10:22:39 +03:00
Bug#16172 DECIMAL data type processed incorrectly
issue an 'overflow warning' if result value is bigger than max possible value
This commit is contained in:
@@ -103,7 +103,7 @@ Warnings:
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'a'
|
||||
select 10.0+cast('a' as decimal);
|
||||
10.0+cast('a' as decimal)
|
||||
10.00
|
||||
10.0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DECIMAL value: 'a'
|
||||
select 10E+0+'a';
|
||||
@@ -368,7 +368,9 @@ create table t1(s1 time);
|
||||
insert into t1 values ('11:11:11');
|
||||
select cast(s1 as decimal(7,2)) from t1;
|
||||
cast(s1 as decimal(7,2))
|
||||
111111.00
|
||||
99999.99
|
||||
Warnings:
|
||||
Error 1264 Out of range value for column 'cast(s1 as decimal(7,2))' at row 1
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (v varchar(10), tt tinytext, t text,
|
||||
mt mediumtext, lt longtext);
|
||||
@@ -376,7 +378,7 @@ INSERT INTO t1 VALUES ('1.01', '2.02', '3.03', '4.04', '5.05');
|
||||
SELECT CAST(v AS DECIMAL), CAST(tt AS DECIMAL), CAST(t AS DECIMAL),
|
||||
CAST(mt AS DECIMAL), CAST(lt AS DECIMAL) from t1;
|
||||
CAST(v AS DECIMAL) CAST(tt AS DECIMAL) CAST(t AS DECIMAL) CAST(mt AS DECIMAL) CAST(lt AS DECIMAL)
|
||||
1.01 2.02 3.03 4.04 5.05
|
||||
1 2 3 4 5
|
||||
DROP TABLE t1;
|
||||
select cast(NULL as decimal(6)) as t1;
|
||||
t1
|
||||
|
||||
@@ -1418,3 +1418,30 @@ i2 count(distinct j)
|
||||
1.0 2
|
||||
2.0 2
|
||||
drop table t1;
|
||||
select cast(143.481 as decimal(4,1));
|
||||
cast(143.481 as decimal(4,1))
|
||||
143.5
|
||||
select cast(143.481 as decimal(4,0));
|
||||
cast(143.481 as decimal(4,0))
|
||||
143
|
||||
select cast(143.481 as decimal(2,1));
|
||||
cast(143.481 as decimal(2,1))
|
||||
9.9
|
||||
Warnings:
|
||||
Error 1264 Out of range value for column 'cast(143.481 as decimal(2,1))' at row 1
|
||||
select cast(-3.4 as decimal(2,1));
|
||||
cast(-3.4 as decimal(2,1))
|
||||
-3.4
|
||||
select cast(99.6 as decimal(2,0));
|
||||
cast(99.6 as decimal(2,0))
|
||||
99
|
||||
Warnings:
|
||||
Error 1264 Out of range value for column 'cast(99.6 as decimal(2,0))' at row 1
|
||||
select cast(-13.4 as decimal(2,1));
|
||||
cast(-13.4 as decimal(2,1))
|
||||
-9.9
|
||||
Warnings:
|
||||
Error 1264 Out of range value for column 'cast(-13.4 as decimal(2,1))' at row 1
|
||||
select cast(98.6 as decimal(2,0));
|
||||
cast(98.6 as decimal(2,0))
|
||||
99
|
||||
|
||||
@@ -1787,7 +1787,7 @@ drop table t1;
|
||||
create view v1 as select cast(1 as decimal);
|
||||
select * from v1;
|
||||
cast(1 as decimal)
|
||||
1.00
|
||||
1
|
||||
drop view v1;
|
||||
create table t1(f1 int);
|
||||
create table t2(f2 int);
|
||||
|
||||
@@ -1115,3 +1115,14 @@ insert into t1 values (1,1), (1,2), (2,3), (2,4);
|
||||
select i, count(distinct j) from t1 group by i;
|
||||
select i+0.0 as i2, count(distinct j) from t1 group by i2;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#16172 DECIMAL data type processed incorrectly
|
||||
#
|
||||
select cast(143.481 as decimal(4,1));
|
||||
select cast(143.481 as decimal(4,0));
|
||||
select cast(143.481 as decimal(2,1));
|
||||
select cast(-3.4 as decimal(2,1));
|
||||
select cast(99.6 as decimal(2,0));
|
||||
select cast(-13.4 as decimal(2,1));
|
||||
select cast(98.6 as decimal(2,0));
|
||||
|
||||
Reference in New Issue
Block a user