From c3bc1f629eb519857f98ba43c6f9f8fcf9a99b9b Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Fri, 8 Mar 2024 17:19:04 +1100 Subject: [PATCH] Fix mysqli tests for MariaDB/MySQL versions exceeding 25 characters Due to an error, MariaDB Docker Official Images containers and MariaDB released Debian/Ubuntu packages ended up with a long version number: select length(version()),version()' +-------------------+-----------------------------------------+ | length(version()) | version() | +-------------------+-----------------------------------------+ | 39 | 10.5.23-MariaDB-1:10.5.23+maria~ubu2004 | https://jira.mariadb.org/browse/MDEV-33631 Even fixing this upstream down to 10.11.23-MariaDB-1~ubu2004 is 27 characters resulting in a truncate to NULL in the changed tests resulting in a test failure. --- ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt | 8 ++++---- ext/mysqli/tests/mysqli_store_result_copy.phpt | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt b/ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt index 3af364dfb550a..3a351d82e7b62 100644 --- a/ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt +++ b/ext/mysqli/tests/mysqli_stmt_execute_stored_proc.phpt @@ -24,7 +24,7 @@ if (mysqli_get_server_version($link) <= 50000) { if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p')) printf("[009] [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); - if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) BEGIN SELECT VERSION() INTO ver_param; END;')) { + if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(50)) BEGIN SELECT VERSION() INTO ver_param; END;')) { /* no result set, one output parameter */ if (!$stmt = mysqli_prepare($link, 'CALL p(@version)')) printf("[011] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); @@ -68,7 +68,7 @@ if (mysqli_get_server_version($link) <= 50000) { if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p')) printf("[019] [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); - if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) BEGIN SELECT VERSION() INTO ver_param; END;')) { + if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(50)) BEGIN SELECT VERSION() INTO ver_param; END;')) { // no result set, one output parameter if (!$stmt = mysqli_prepare($link, 'CALL p(@version)')) printf("[020] Cannot prepare CALL, [%d] %s\n", mysqli_errno($link), mysqli_error($link)); @@ -105,7 +105,7 @@ if (mysqli_get_server_version($link) <= 50000) { if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p')) printf("[028] [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); - if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(25), OUT ver_out VARCHAR(25)) BEGIN SELECT ver_in INTO ver_out; END;')) { + if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(50), OUT ver_out VARCHAR(50)) BEGIN SELECT ver_in INTO ver_out; END;')) { // no result set, one input parameter, output parameter // yes, I really do not want to bind input values... if (!$stmt = mysqli_prepare($link, "CALL p('myversion', @version)")) @@ -143,7 +143,7 @@ if (mysqli_get_server_version($link) <= 50000) { if (!mysqli_query($link, 'DROP PROCEDURE IF EXISTS p')) printf("[037] [%d] %s.\n", mysqli_errno($link), mysqli_error($link)); - if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(25), OUT ver_out VARCHAR(25)) BEGIN SELECT ver_in INTO ver_out; END;')) { + if (mysqli_real_query($link, 'CREATE PROCEDURE p(IN ver_in VARCHAR(50), OUT ver_out VARCHAR(50)) BEGIN SELECT ver_in INTO ver_out; END;')) { // no result set, one input parameter, output parameter // yes, I really do not want to bind input values... if (!$stmt = mysqli_prepare($link, 'CALL p(?, @version)')) diff --git a/ext/mysqli/tests/mysqli_store_result_copy.phpt b/ext/mysqli/tests/mysqli_store_result_copy.phpt index d48701caca115..281f50231db81 100644 --- a/ext/mysqli/tests/mysqli_store_result_copy.phpt +++ b/ext/mysqli/tests/mysqli_store_result_copy.phpt @@ -164,7 +164,7 @@ mysqlnd.fetch_data_copy=0 if (mysqli_get_server_version($link) > 50000) { // let's try to play with stored procedures mysqli_real_query($link, 'DROP PROCEDURE IF EXISTS p'); - if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(25)) READS SQL DATA BEGIN SELECT id FROM test WHERE id >= 100 ORDER BY id; SELECT id + 1, label FROM test WHERE id > 0 AND id < 3 ORDER BY id; SELECT VERSION() INTO ver_param; + if (mysqli_real_query($link, 'CREATE PROCEDURE p(OUT ver_param VARCHAR(50)) READS SQL DATA BEGIN SELECT id FROM test WHERE id >= 100 ORDER BY id; SELECT id + 1, label FROM test WHERE id > 0 AND id < 3 ORDER BY id; SELECT VERSION() INTO ver_param; END;')) { mysqli_multi_query($link, "CALL p(@version)"); do {