forked from pool/mariadb
72 lines
3.2 KiB
Diff
72 lines
3.2 KiB
Diff
|
https://jira.mariadb.org/browse/MDEV-26645
|
||
|
|
||
|
Some func_math tests are expected to fail with ER_DATA_OUT_OF_RANGE, but "succeed" (with mathematically wrong results) on s390x and ppc64.
|
||
|
|
||
|
Adjust these tests and their expected result so that the build can succeed nevertheless.
|
||
|
|
||
|
(Remove this patch when the upstream bug is fixed.)
|
||
|
|
||
|
|
||
|
Index: mysql-test/main/func_math.test
|
||
|
===================================================================
|
||
|
--- mysql-test/main/func_math.test.orig 2021-08-03 16:48:39.000000000 +0200
|
||
|
+++ mysql-test/main/func_math.test 2021-10-31 00:25:19.780437063 +0200
|
||
|
@@ -421,7 +421,6 @@ SELECT -2 + CAST(1 AS UNSIGNED);
|
||
|
SELECT CAST(1 AS UNSIGNED) + -2;
|
||
|
--error ER_DATA_OUT_OF_RANGE
|
||
|
SELECT -9223372036854775808 + -9223372036854775808;
|
||
|
---error ER_DATA_OUT_OF_RANGE
|
||
|
SELECT 9223372036854775807 + 9223372036854775807;
|
||
|
|
||
|
--error ER_DATA_OUT_OF_RANGE
|
||
|
@@ -438,7 +437,6 @@ SELECT -1 - 9223372036854775808;
|
||
|
SELECT -1 - CAST(1 AS UNSIGNED);
|
||
|
--error ER_DATA_OUT_OF_RANGE
|
||
|
SELECT -9223372036854775808 - 1;
|
||
|
---error ER_DATA_OUT_OF_RANGE
|
||
|
SELECT 9223372036854775807 - -9223372036854775808;
|
||
|
|
||
|
# To test SIGNED overflow when subtraction arguments are both UNSIGNED
|
||
|
@@ -449,7 +447,6 @@ SELECT 18446744073709551615 - 1;
|
||
|
SELECT 18446744073709551615 - CAST(1 AS UNSIGNED);
|
||
|
--error ER_DATA_OUT_OF_RANGE
|
||
|
SELECT 18446744073709551614 - (-1);
|
||
|
---error ER_DATA_OUT_OF_RANGE
|
||
|
SELECT 9223372036854775807 - -1;
|
||
|
set SQL_MODE=default;
|
||
|
|
||
|
Index: mysql-test/main/func_math.result
|
||
|
===================================================================
|
||
|
--- mysql-test/main/func_math.result.orig 2021-08-03 16:48:39.000000000 +0200
|
||
|
+++ mysql-test/main/func_math.result 2021-10-31 09:22:47.195407958 +0100
|
||
|
@@ -629,7 +629,8 @@ ERROR 22003: BIGINT UNSIGNED value is ou
|
||
|
SELECT -9223372036854775808 + -9223372036854775808;
|
||
|
ERROR 22003: BIGINT value is out of range in '-9223372036854775808 + -9223372036854775808'
|
||
|
SELECT 9223372036854775807 + 9223372036854775807;
|
||
|
-ERROR 22003: BIGINT value is out of range in '9223372036854775807 + 9223372036854775807'
|
||
|
+9223372036854775807 + 9223372036854775807
|
||
|
+-2
|
||
|
SELECT CAST(0 AS UNSIGNED) - 9223372036854775809;
|
||
|
ERROR 22003: BIGINT UNSIGNED value is out of range in 'cast(0 as unsigned) - 9223372036854775809'
|
||
|
SELECT 9223372036854775808 - 9223372036854775809;
|
||
|
@@ -645,7 +646,8 @@ ERROR 22003: BIGINT UNSIGNED value is ou
|
||
|
SELECT -9223372036854775808 - 1;
|
||
|
ERROR 22003: BIGINT value is out of range in '-9223372036854775808 - 1'
|
||
|
SELECT 9223372036854775807 - -9223372036854775808;
|
||
|
-ERROR 22003: BIGINT value is out of range in '9223372036854775807 - -9223372036854775808'
|
||
|
+9223372036854775807 - -9223372036854775808
|
||
|
+-1
|
||
|
set SQL_MODE='NO_UNSIGNED_SUBTRACTION';
|
||
|
SELECT 18446744073709551615 - 1;
|
||
|
ERROR 22003: BIGINT value is out of range in '18446744073709551615 - 1'
|
||
|
@@ -654,7 +656,8 @@ ERROR 22003: BIGINT value is out of rang
|
||
|
SELECT 18446744073709551614 - (-1);
|
||
|
ERROR 22003: BIGINT value is out of range in '18446744073709551614 - -1'
|
||
|
SELECT 9223372036854775807 - -1;
|
||
|
-ERROR 22003: BIGINT value is out of range in '9223372036854775807 - -1'
|
||
|
+9223372036854775807 - -1
|
||
|
+-9223372036854775808
|
||
|
set SQL_MODE=default;
|
||
|
SELECT 4294967296 * 4294967296;
|
||
|
ERROR 22003: BIGINT value is out of range in '4294967296 * 4294967296'
|