5.1-bugteam->5.5-bugteam merge
This commit is contained in:
commit
26763a57a3
@ -501,6 +501,19 @@ SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1292 Truncated incorrect DECIMAL value: ''
|
||||
Error 1690 BIGINT value is out of range in '('123456789012345678901234567890.123456789012345678901234567890' DIV 1)'
|
||||
#
|
||||
# Bug#57810 case/when/then : Assertion failed: length || !scale
|
||||
#
|
||||
SELECT CASE(('')) WHEN (CONVERT(1, CHAR(1))) THEN (('' / 1)) END;
|
||||
CASE(('')) WHEN (CONVERT(1, CHAR(1))) THEN (('' / 1)) END
|
||||
NULL
|
||||
CREATE TABLE t1 SELECT CAST((CASE(('')) WHEN (CONVERT(1, CHAR(1))) THEN (('' / 1)) END) AS CHAR) as C;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`C` varchar(23) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
#
|
||||
# Bug #8433: Overflow must be an error
|
||||
|
@ -336,6 +336,15 @@ select 123456789012345678901234567890.123456789012345678901234567890 div 1 as x;
|
||||
select "123456789012345678901234567890.123456789012345678901234567890" div 1 as x;
|
||||
SHOW WARNINGS;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#57810 case/when/then : Assertion failed: length || !scale
|
||||
--echo #
|
||||
|
||||
SELECT CASE(('')) WHEN (CONVERT(1, CHAR(1))) THEN (('' / 1)) END;
|
||||
CREATE TABLE t1 SELECT CAST((CASE(('')) WHEN (CONVERT(1, CHAR(1))) THEN (('' / 1)) END) AS CHAR) as C;
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
||||
--echo #
|
||||
|
@ -1543,9 +1543,14 @@ void Item_func_div::fix_length_and_dec()
|
||||
{
|
||||
decimals=max(args[0]->decimals,args[1]->decimals)+prec_increment;
|
||||
set_if_smaller(decimals, NOT_FIXED_DEC);
|
||||
max_length=args[0]->max_length - args[0]->decimals + decimals;
|
||||
uint tmp=float_length(decimals);
|
||||
set_if_smaller(max_length,tmp);
|
||||
if (decimals == NOT_FIXED_DEC)
|
||||
max_length= tmp;
|
||||
else
|
||||
{
|
||||
max_length=args[0]->max_length - args[0]->decimals + decimals;
|
||||
set_if_smaller(max_length,tmp);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case INT_RESULT:
|
||||
|
Loading…
x
Reference in New Issue
Block a user