mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Bug#12537160 ASSERTION FAILED: STOP0 <= &TO->BUF[TO->LEN] WITH LARGE NUMBER.
Turns out the DBUG_ASSERT added by fix for Bug#11792200 was overly pessimistic: 'stop0' is used in the main loop of do_div_mod, but we only dereference 'buf0' for div operations, not for mod. mysql-test/r/func_math.result: New test case. mysql-test/t/func_math.test: New test case. strings/decimal.c: Move DBUG_ASSERT down to where we actually dereference the loop pointer.
This commit is contained in:
@@ -699,3 +699,13 @@ select (1.175494351E-37 div 1.7976931348623157E+308);
|
||||
0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DECIMAL value: ''
|
||||
#
|
||||
# Bug#12537160 ASSERTION FAILED:
|
||||
# STOP0 <= &TO->BUF[TO->LEN] WITH LARGE NUMBER.
|
||||
#
|
||||
select 999999999999999999999999999999999999999999999999999999999999999999999999999999999 % 0.1 as foo;
|
||||
foo
|
||||
0.0
|
||||
select 999999999999999999999999999999999999999999999999999999999999999999999999999999999 % 0.0 as foo;
|
||||
foo
|
||||
NULL
|
||||
|
@@ -536,3 +536,14 @@ SELECT 1 div null;
|
||||
--echo # Bug #11792200 - DIVIDING LARGE NUMBERS CAUSES STACK CORRUPTIONS
|
||||
--echo #
|
||||
select (1.175494351E-37 div 1.7976931348623157E+308);
|
||||
|
||||
--echo #
|
||||
--echo # Bug#12537160 ASSERTION FAILED:
|
||||
--echo # STOP0 <= &TO->BUF[TO->LEN] WITH LARGE NUMBER.
|
||||
--echo #
|
||||
|
||||
let $nine_81=
|
||||
999999999999999999999999999999999999999999999999999999999999999999999999999999999;
|
||||
|
||||
eval select $nine_81 % 0.1 as foo;
|
||||
eval select $nine_81 % 0.0 as foo;
|
||||
|
Reference in New Issue
Block a user