blob: 2851f377dafa6b8d4e8800a20c8e01e4ecb3114d [file] [log] [blame]
====
---- QUERY
# Verify that decimal value, which is expressed with constant decimal expression and its
# value is not overflowed, is inserted into the table.
set decimal_v2=true;
insert into table overflowed_decimal_tbl_1
select 1, cast(cast(65496456343.9565 as decimal (28,7))*44658*2.111
as decimal (28,10));
---- RESULTS
: 1
====
---- QUERY
# Verify that decimal value, which is expressed with decimal expression with one
# alias and its value is not overflowed, is inserted into the table.
set decimal_v2=true;
insert into table overflowed_decimal_tbl_1
select 2, cast(a*44658*2.111 as decimal (28,10)) from
(select cast(65496456.9565 as decimal (28,7)) as a) q;
---- RESULTS
: 1
====
---- QUERY
# Verify that decimal value, which is expressed with decimal expression with three
# aliases and its value is not overflowed, is inserted into the table.
set decimal_v2=true;
insert into table overflowed_decimal_tbl_1
select 3, cast(a*b*c as decimal (28,10)) from
(select cast(65496456.9565 as decimal (28,7)) as a,
cast(44658 as decimal (28,7)) as b,
cast(2.111 as decimal (28,7)) as c) q;
---- RESULTS
: 1
====
---- QUERY
# Verify that overflow behaviour of decimal_v1 is unchanged.
# Verify decimal value, which is expressed with constant decimal expression
# and its value is overflowed, is inserted into the table as NULL when
# decimal_v2 is set as false.
set decimal_v2=false;
insert into table overflowed_decimal_tbl_1
select 4, cast(cast(654964569154.9565 as decimal (28,7))*44658554984*2.111
as decimal (28,10));
select count(*) from overflowed_decimal_tbl_1 where d_28 is null;
---- RESULTS
1
====
---- QUERY
# Verify that overflow behaviour of decimal_v1 is unchanged.
# Verify that decimal value, which is expressed with decimal expression with one
# alias and its value is overflowed, is inserted into the table as NULL when
# decimal_v2 is set as false.
set decimal_v2=false;
insert into table overflowed_decimal_tbl_1
select 5, cast(a*44658554984*2.111 as decimal (28,10)) from
(select cast(654964569154.9565 as decimal (28,7)) as a) q;
select count(*) from overflowed_decimal_tbl_1 where d_28 is null;
---- RESULTS
2
====
---- QUERY
# Verify that overflow behaviour of decimal_v1 is unchanged.
# Verify that decimal value, which is expressed with decimal expression with three
# alias and its value is overflowed, is inserted into the table as NULL when
# decimal_v2 is set as false.
set decimal_v2=false;
insert into table overflowed_decimal_tbl_1
select 6, cast(a*b*c as decimal (28,10)) from
(select cast(654964569154.9565 as decimal (28,7)) as a,
cast(44658554984 as decimal (28,7)) as b,
cast(2.111 as decimal (28,7)) as c) q;
select count(*) from overflowed_decimal_tbl_1 where d_28 is null;
---- RESULTS
3
====
---- QUERY
# Verify that decimal value, which is expressed with constant decimal expression
# and its value is overflowed, cause query aborted with an error.
set decimal_v2=true;
insert into table overflowed_decimal_tbl_1
select 7, cast(cast(654964569154.9565 as decimal (28,7))*44658554984*2.111
as decimal (28,10));
---- CATCH
Decimal expression overflowed
====
---- QUERY
# Verify that decimal value, which is expressed with decimal expression with one
# alias and its value is overflowed, cause query aborted with an error.
set decimal_v2=true;
insert into table overflowed_decimal_tbl_1
select 8, cast(a*44658554984*2.111 as decimal (28,10)) from
(select cast(654964569154.9565 as decimal (28,7)) as a) q;
---- CATCH
Decimal expression overflowed
====
---- QUERY
# Verify that decimal value, which is expressed with decimal expression with three
# aliases and its value is overflowed, cause query aborted with an error.
set decimal_v2=true;
insert into table overflowed_decimal_tbl_1
select 9, cast(a*b*c as decimal (28,10)) from
(select cast(654964569154.9565 as decimal (28,7)) as a,
cast(44658554984 as decimal (28,7)) as b,
cast(2.111 as decimal (28,7)) as c) q;
---- CATCH
Decimal expression overflowed
====
---- QUERY
# Verify that decimal value, which is expressed with selection from another table
# and its value is overflowed, cause query aborted with an error.
set decimal_v2=true;
insert into table overflowed_decimal_tbl_2
select i, cast(d_28*d_28*d_28 as decimal (28,10))
from overflowed_decimal_tbl_1 where d_28 is not null;
---- CATCH
Decimal expression overflowed
====