SHA256
1
0
forked from pool/mariadb
mariadb/func_math_tests_MDEV-26645.diff
Danilo Spinella 71e0b9d8b4 Accepting request 928544 from home:cboltz:branches:server:database
- Add func_math_tests_MDEV-26645.diff to avoid test failures in the func_math
  test on Tumbleweed s390x and ppc64 until MDEV-26645 gets fixed upstream

OBS-URL: https://build.opensuse.org/request/show/928544
OBS-URL: https://build.opensuse.org/package/show/server:database/mariadb?expand=0&rev=282
2021-11-03 15:19:21 +00:00

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'