Commit ef3600b8 authored by Alexey Botchkov's avatar Alexey Botchkov
Browse files

merging

parents 93f88cb9 56dc6b2e
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -1534,6 +1534,21 @@ select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
(1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
1.01500000 * 1.01500000 * 0.99500000)
0.812988073953673124592306939480
create table t1 as select 5.05 / 0.014;
Warnings:
Note	1265	Data truncated for column '5.05 / 0.014' at row 1
show warnings;
Level	Code	Message
Note	1265	Data truncated for column '5.05 / 0.014' at row 1
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `5.05 / 0.014` decimal(10,6) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
select * from t1;
5.05 / 0.014
360.714286
DROP TABLE t1;
End of 5.0 tests
select cast(143.481 as decimal(4,1));
cast(143.481 as decimal(4,1))
+10 −0
Original line number Diff line number Diff line
@@ -1235,6 +1235,16 @@ DROP TABLE t1;
select (1.20396873 * 0.89550000 * 0.68000000 * 1.08721696 * 0.99500000 *
        1.01500000 * 1.01500000 * 0.99500000);

#
# Bug #31616 div_precision_increment description looks wrong 
#

create table t1 as select 5.05 / 0.014;
show warnings;
show create table t1;
select * from t1;
DROP TABLE t1;

--echo End of 5.0 tests

#
+4 −2
Original line number Diff line number Diff line
@@ -1301,8 +1301,10 @@ my_decimal *Item_func_div::decimal_op(my_decimal *decimal_value)

void Item_func_div::result_precision()
{
  uint arg_prec= args[0]->decimal_precision() + prec_increment;
  uint precision=min(arg_prec, DECIMAL_MAX_PRECISION);
  uint precision=min(args[0]->decimal_precision() + 
                     args[1]->decimals + prec_increment,
                     DECIMAL_MAX_PRECISION);

  /* Integer operations keep unsigned_flag if one of arguments is unsigned */
  if (result_type() == INT_RESULT)
    unsigned_flag= args[0]->unsigned_flag | args[1]->unsigned_flag;