Details
-
Technical task
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
10.2.2-3, 10.2.2-1, 10.2.2-2, 10.2.2-4, 10.1.18
Description
When running with sql_mode=ORACLE, MariaDB (the bb-10.2-compatibility branch) requires extra BEGIN..END in multi-statement exception handlers in THEN clause:
SET sql_mode=ORACLE; |
DROP PROCEDURE p1; |
DELIMITER /
|
CREATE PROCEDURE p1 AS |
BEGIN
|
INSERT INTO t1 (a) VALUES (10); |
EXCEPTION
|
WHEN DUP_VAL_ON_INDEX THEN |
BEGIN |
NULL; |
NULL; |
END; |
WHEN OTHERS THEN |
BEGIN |
NULL; |
NULL; |
END; |
END; |
/
|
DELIMITER ;
|
For better Oracle compatibility, we'll fix it not to require BEGIN..END, to make this work:
SET sql_mode=ORACLE; |
DROP PROCEDURE p1; |
DELIMITER /
|
CREATE PROCEDURE p1 AS |
BEGIN
|
INSERT INTO t1 (a) VALUES (10); |
EXCEPTION
|
WHEN DUP_VAL_ON_INDEX THEN |
NULL; |
NULL; |
WHEN OTHERS THEN |
NULL; |
NULL; |
END; |
/
|
DELIMITER ;
|
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Status | Open [ 1 ] | In Progress [ 3 ] |
issue.field.resolutiondate | 2017-02-20 15:51:33.0 | 2017-02-20 15:51:33.645 |
Component/s | Parser [ 10201 ] | |
Fix Version/s | 10.3.0 [ 22127 ] | |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Closed [ 6 ] |
Labels | Compatibility need_review |
Component/s | Stored routines [ 13905 ] |
Labels | Compatibility need_review | Compatibility |
Workflow | MariaDB v3 [ 79689 ] | MariaDB v4 [ 151724 ] |
Pushed into 10.3.0.