Skip to content

Commit 5269d37

Browse files
author
Alexander Barkov
committed
MDEV-10468 Assertion `nr >= 0.0' failed in Item_sum_std::val_real()
1 parent 1b3430a commit 5269d37

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

mysql-test/r/func_group.result

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2297,3 +2297,15 @@ FROM t1;
22972297
C_1 C_2 C_3
22982298
NULL 100 200
22992299
DROP TABLE t1;
2300+
#
2301+
# MDEV-10468 Assertion `nr >= 0.0' failed in Item_sum_std::val_real()
2302+
#
2303+
SELECT STDDEV_POP(f) FROM (SELECT "1e+309" AS f UNION SELECT "-1e+309" AS f) tbl;
2304+
STDDEV_POP(f)
2305+
1.7976931348623157e308
2306+
Warnings:
2307+
Warning 1292 Truncated incorrect DOUBLE value: '1e+309'
2308+
Warning 1292 Truncated incorrect DOUBLE value: '-1e+309'
2309+
SELECT STDDEV(f) FROM (SELECT 1.7976931348623157e+308 AS f UNION SELECT -1.7976931348623157e+308 AS f) tbl;
2310+
STDDEV(f)
2311+
1.7976931348623157e308

mysql-test/t/func_group.test

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1590,3 +1590,9 @@ SELECT
15901590
SUM(data3) AS C_3
15911591
FROM t1;
15921592
DROP TABLE t1;
1593+
1594+
--echo #
1595+
--echo # MDEV-10468 Assertion `nr >= 0.0' failed in Item_sum_std::val_real()
1596+
--echo #
1597+
SELECT STDDEV_POP(f) FROM (SELECT "1e+309" AS f UNION SELECT "-1e+309" AS f) tbl;
1598+
SELECT STDDEV(f) FROM (SELECT 1.7976931348623157e+308 AS f UNION SELECT -1.7976931348623157e+308 AS f) tbl;

sql/item_sum.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1762,6 +1762,8 @@ double Item_sum_std::val_real()
17621762
{
17631763
DBUG_ASSERT(fixed == 1);
17641764
double nr= Item_sum_variance::val_real();
1765+
if (my_isinf(nr))
1766+
return DBL_MAX;
17651767
DBUG_ASSERT(nr >= 0.0);
17661768
return sqrt(nr);
17671769
}

0 commit comments

Comments
 (0)