diff --git a/mysql-test/main/get_diagnostics.result b/mysql-test/main/get_diagnostics.result index c7ca21e6040..280dd671e43 100644 --- a/mysql-test/main/get_diagnostics.result +++ b/mysql-test/main/get_diagnostics.result @@ -1608,3 +1608,33 @@ SELECT @var1; 2 DROP TABLE t1; DROP PROCEDURE sp; +# +# MDEV-26684: Unexpected ROW_NUMBER in a condition raised by a diagnostics statement +# +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2); +GET DIAGNOSTICS CONDITION 5 @msg = MESSAGE_TEXT; +Warnings: +Error 1758 Invalid condition number +SHOW WARNINGS; +Level Code Message +Error 1758 Invalid condition number +GET DIAGNOSTICS CONDITION 1 @ind = ROW_NUMBER, @msg = MESSAGE_TEXT; +SELECT @ind, @msg; +@ind @msg +0 Invalid condition number +INSERT INTO t1 VALUES (3),(4); +GET DIAGNOSTICS CONDITION 1 @ind = ROW_NUMBER, @msg = MESSAGE_TEXT; +Warnings: +Error 1758 Invalid condition number +SELECT @ind, @msg; +@ind @msg +0 Invalid condition number +GET DIAGNOSTICS CONDITION 5 @ind = ROW_NUMBER, @msg = MESSAGE_TEXT; +Warnings: +Error 1758 Invalid condition number +Error 1758 Invalid condition number +SELECT @ind, @msg; +@ind @msg +0 Invalid condition number +DROP TABLE t1; diff --git a/mysql-test/main/get_diagnostics.test b/mysql-test/main/get_diagnostics.test index 7db3dc95929..59b054bcc9b 100644 --- a/mysql-test/main/get_diagnostics.test +++ b/mysql-test/main/get_diagnostics.test @@ -1496,3 +1496,27 @@ SELECT @var1; DROP TABLE t1; DROP PROCEDURE sp; + +--echo # +--echo # MDEV-26684: Unexpected ROW_NUMBER in a condition raised by a diagnostics statement +--echo # + +CREATE TABLE t1 (a INT); + +INSERT INTO t1 VALUES (1),(2); + +GET DIAGNOSTICS CONDITION 5 @msg = MESSAGE_TEXT; +SHOW WARNINGS; + +GET DIAGNOSTICS CONDITION 1 @ind = ROW_NUMBER, @msg = MESSAGE_TEXT; +SELECT @ind, @msg; + +INSERT INTO t1 VALUES (3),(4); + +GET DIAGNOSTICS CONDITION 1 @ind = ROW_NUMBER, @msg = MESSAGE_TEXT; +SELECT @ind, @msg; + +GET DIAGNOSTICS CONDITION 5 @ind = ROW_NUMBER, @msg = MESSAGE_TEXT; +SELECT @ind, @msg; + +DROP TABLE t1;