Commit 23809865 authored by Igor Babaev's avatar Igor Babaev

Merge

parents 9ad14593 a7bc7ebd
......@@ -105,3 +105,23 @@ t2 CREATE TABLE `t2` (
`v1` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLE t1,t2;
CREATE TABLE t1 (p int, a double NOT NULL, v double AS (ROUND(a,p)) VIRTUAL);
INSERT INTO t1 VALUES (0,1,0);
Warnings:
Warning 1645 The value specified for computed column 'v' in table 't1' ignored
INSERT INTO t1 VALUES (NULL,0,0);
Warnings:
Warning 1645 The value specified for computed column 'v' in table 't1' ignored
SELECT a, p, v, ROUND(a,p), ROUND(a,p+NULL) FROM t1;
a p v ROUND(a,p) ROUND(a,p+NULL)
1 0 1 1 NULL
0 NULL NULL NULL NULL
DROP TABLE t1;
CREATE TABLE t1 (p int, a double NOT NULL);
INSERT INTO t1(p,a) VALUES (0,1);
INSERT INTO t1(p,a) VALUES (NULL,0);
SELECT a, p, ROUND(a,p), ROUND(a,p+NULL) FROM t1;
a p ROUND(a,p) ROUND(a,p+NULL)
1 0 1 NULL
0 NULL NULL NULL
DROP TABLE t1;
......@@ -112,3 +112,19 @@ CREATE TABLE t2 AS SELECT v1 FROM t1;
SHOW CREATE TABLE t2;
DROP TABLE t1,t2;
#
# Bug#607177: ROUND function in the expression for a virtual function
#
CREATE TABLE t1 (p int, a double NOT NULL, v double AS (ROUND(a,p)) VIRTUAL);
INSERT INTO t1 VALUES (0,1,0);
INSERT INTO t1 VALUES (NULL,0,0);
SELECT a, p, v, ROUND(a,p), ROUND(a,p+NULL) FROM t1;
DROP TABLE t1;
CREATE TABLE t1 (p int, a double NOT NULL);
INSERT INTO t1(p,a) VALUES (0,1);
INSERT INTO t1(p,a) VALUES (NULL,0);
SELECT a, p, ROUND(a,p), ROUND(a,p+NULL) FROM t1;
DROP TABLE t1;
......@@ -2040,10 +2040,12 @@ double Item_func_round::real_op()
{
double value= args[0]->val_real();
if (!(null_value= args[0]->null_value || args[1]->null_value))
return my_double_round(value, args[1]->val_int(), args[1]->unsigned_flag,
truncate);
if (!(null_value= args[0]->null_value))
{
longlong dec= args[1]->val_int();
if (!(null_value= args[1]->null_value))
return my_double_round(value, dec, args[1]->unsigned_flag, truncate);
}
return 0.0;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment