diff options
Diffstat (limited to 'mysql-test/main/get_diagnostics.test')
-rw-r--r-- | mysql-test/main/get_diagnostics.test | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/mysql-test/main/get_diagnostics.test b/mysql-test/main/get_diagnostics.test index eb8d2a23a45..7f044e4371b 100644 --- a/mysql-test/main/get_diagnostics.test +++ b/mysql-test/main/get_diagnostics.test @@ -1481,3 +1481,35 @@ SELECT @num, @msg; DROP PROCEDURE sp; DROP TABLE t1; + +--echo # +--echo # MDEV-26681: ERROR_INDEX is not available within compound statement blocks +--echo # + +CREATE OR REPLACE TABLE t1 (pk INT PRIMARY KEY, a CHAR(3)); +INSERT IGNORE INTO t1 VALUES (1,'foo'),(1,'bar'),(2,'foobar'); + +DELIMITER |; + +BEGIN NOT ATOMIC + DECLARE i INT DEFAULT 0; + DECLARE rnum INT DEFAULT -1; + DECLARE msg VARCHAR(1024) DEFAULT ''; + DECLARE err INT DEFAULT -1; + WHILE i < @@warning_count + DO + SET i = i + 1; + GET DIAGNOSTICS CONDITION i rnum = ERROR_INDEX, msg = MESSAGE_TEXT, err = MYSQL_ERRNO; + SELECT i, rnum, msg, err; + END WHILE; +END | + +DELIMITER ;| + +GET DIAGNOSTICS CONDITION 1 @rnum = ERROR_INDEX, @msg = MESSAGE_TEXT, @err = MYSQL_ERRNO; +select @rnum, @msg, @err; + +GET DIAGNOSTICS CONDITION 2 @rnum = ERROR_INDEX, @msg = MESSAGE_TEXT, @err = MYSQL_ERRNO; +SELECT @rnum, @msg, @err; + +DROP TABLE t1; |