mariadb/func_math_tests_MDEV-26645.diff

72 lines
3.2 KiB
Diff
Raw Permalink Normal View History

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'