[MDEV-20393] Exception is not captured by sqlexception handler on UPDATE with LEFT JOIN Created: 2019-08-20  Updated: 2023-04-27

Status: Open
Project: MariaDB Server
Component/s: Stored routines
Affects Version/s: 10.3.17, 10.4.7
Fix Version/s: 10.4

Type: Bug Priority: Major
Reporter: Thomas G. Jensen Assignee: Oleksandr Byelkin
Resolution: Unresolved Votes: 0
Labels: None
Environment:

lubuntu 16.04



 Description   

DROP TABLE IF EXISTS tab1;
DROP TABLE IF EXISTS tab2;
DROP PROCEDURE IF EXISTS sp_test;

CREATE TABLE tab1 (t1_col1 int primary key);
CREATE TABLE tab2 (t2_col1 int primary key);

INSERT tab1 VALUES (1), (2), (3), (4);
INSERT tab2 VALUES (1), (2), (3), (4);

CREATE PROCEDURE sp_test()
BEGIN

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN
GET DIAGNOSTICS CONDITION 1 @HANDLER_TEXT = MESSAGE_TEXT;
SELECT @HANDLER_TEXT;
END;

UPDATE tab1 SET t1_col1 = 1 WHERE t1_col1 = 4;
UPDATE tab1 INNER JOIN tab2 ON t2_col1 = t1_col1 SET t1_col1 = 2 WHERE t1_col1 = 4;
UPDATE tab1 LEFT JOIN tab2 ON t2_col1 = t1_col1 SET t1_col1 = 3 WHERE t1_col1 = 4;

– The UPDATE using LEFT JOIN is not captured by the continue handler. Why?

END;

CALL sp_test();

Output:

+---------------------------------------+
| @HANDLER_TEXT                         |
+---------------------------------------+
| Duplicate entry '1' for key 'PRIMARY' |
+---------------------------------------+
+---------------------------------------+
| @HANDLER_TEXT                         |
+---------------------------------------+
| Duplicate entry '2' for key 'PRIMARY' |
+---------------------------------------+
ERROR 1062 (23000) at line 1: Duplicate entry '3' for key 'PRIMARY'


Generated at Thu Feb 08 08:59:07 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.