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) does not understand the optional function or procedure name after the END keyword which ends the entire routine definition. We'll extend the parser to understand the optional name, so this script is parsed without syntax errors:
SET sql_mode=ORACLE; |
DROP PROCEDURE p1; |
DELIMITER /
|
CREATE PROCEDURE p1 AS |
BEGIN
|
END p1; -- Notice p1 |
/
|
DELIMITER ;
|
In case of stand-alone routines we'll also allow qualified names: END test.p1;
Originally this task included changes for package routines, but it does not any more:
Optional routine names are also possible inside a package body definition:
DELIMITER $$
|
CREATE PACKAGE BODY test2 AS |
FUNCTION f1 RETURN INT AS |
BEGIN |
RETURN 10; |
END f1; |
PROCEDURE p1 AS |
BEGIN |
NULL; |
END p1; |
END test2; |
$$
|
DELIMITER ;
|
DROP PACKAGE test2; |
In case of package routines the name specified in END cannot be qualified.
If the name specified in CREATE does not match the name specified in END, an error will be reported.
Under terms of this patch we'll only fix traditional (stand-alone) stored functions and procedures.
Handling the name after the END for package routines will be done in package related tasks (e.g. MDEV-10591 or MDEV-11952)
Attachments
Activity
Field | Original Value | New Value |
---|---|---|
Fix Version/s | 10.3 [ 22126 ] |
Description |
When running with {{sql_mode=ORACLE}}, MariaDB (the {{bb-10.2-compatibility}} branch) does not understand the optional function or procedure name after the {{END}} keyword which ends the entire routine definition. We'll extend the parser to understand the optional name, so this script is parsed without syntax errors: {code:sql} SET sql_mode=ORACLE; DROP PROCEDURE p1; DELIMITER / CREATE PROCEDURE p1 AS BEGIN END p1; -- Notice p1 / DELIMITER ; {code} |
When running with {{sql_mode=ORACLE}}, MariaDB (the {{bb-10.2-compatibility}} branch) does not understand the optional function or procedure name after the {{END}} keyword which ends the entire routine definition. We'll extend the parser to understand the optional name, so this script is parsed without syntax errors:
{code:sql} SET sql_mode=ORACLE; DROP PROCEDURE p1; DELIMITER / CREATE PROCEDURE p1 AS BEGIN END p1; -- Notice p1 / DELIMITER ; {code} In case of stand-alone routines we'll also allow qualified names: {{END test.p1}}. Optional routine names are also possible inside a package body definition: {code:sql} DELIMITER $$ CREATE PACKAGE BODY test2 AS FUNCTION f1 RETURN INT AS BEGIN RETURN 10; END f1; PROCEDURE p1 AS BEGIN NULL; END p1; END test2; $$ DELIMITER ; DROP PACKAGE test2; {code} In case of package routines the name specified in {{END}} cannot be qualified. |
Description |
When running with {{sql_mode=ORACLE}}, MariaDB (the {{bb-10.2-compatibility}} branch) does not understand the optional function or procedure name after the {{END}} keyword which ends the entire routine definition. We'll extend the parser to understand the optional name, so this script is parsed without syntax errors:
{code:sql} SET sql_mode=ORACLE; DROP PROCEDURE p1; DELIMITER / CREATE PROCEDURE p1 AS BEGIN END p1; -- Notice p1 / DELIMITER ; {code} In case of stand-alone routines we'll also allow qualified names: {{END test.p1}}. Optional routine names are also possible inside a package body definition: {code:sql} DELIMITER $$ CREATE PACKAGE BODY test2 AS FUNCTION f1 RETURN INT AS BEGIN RETURN 10; END f1; PROCEDURE p1 AS BEGIN NULL; END p1; END test2; $$ DELIMITER ; DROP PACKAGE test2; {code} In case of package routines the name specified in {{END}} cannot be qualified. |
When running with {{sql_mode=ORACLE}}, MariaDB (the {{bb-10.2-compatibility}} branch) does not understand the optional function or procedure name after the {{END}} keyword which ends the entire routine definition. We'll extend the parser to understand the optional name, so this script is parsed without syntax errors:
{code:sql} SET sql_mode=ORACLE; DROP PROCEDURE p1; DELIMITER / CREATE PROCEDURE p1 AS BEGIN END p1; -- Notice p1 / DELIMITER ; {code} In case of stand-alone routines we'll also allow qualified names: {{END test.p1;}} Optional routine names are also possible inside a package body definition: {code:sql} DELIMITER $$ CREATE PACKAGE BODY test2 AS FUNCTION f1 RETURN INT AS BEGIN RETURN 10; END f1; PROCEDURE p1 AS BEGIN NULL; END p1; END test2; $$ DELIMITER ; DROP PACKAGE test2; {code} In case of package routines the name specified in {{END}} cannot be qualified. |
Description |
When running with {{sql_mode=ORACLE}}, MariaDB (the {{bb-10.2-compatibility}} branch) does not understand the optional function or procedure name after the {{END}} keyword which ends the entire routine definition. We'll extend the parser to understand the optional name, so this script is parsed without syntax errors:
{code:sql} SET sql_mode=ORACLE; DROP PROCEDURE p1; DELIMITER / CREATE PROCEDURE p1 AS BEGIN END p1; -- Notice p1 / DELIMITER ; {code} In case of stand-alone routines we'll also allow qualified names: {{END test.p1;}} Optional routine names are also possible inside a package body definition: {code:sql} DELIMITER $$ CREATE PACKAGE BODY test2 AS FUNCTION f1 RETURN INT AS BEGIN RETURN 10; END f1; PROCEDURE p1 AS BEGIN NULL; END p1; END test2; $$ DELIMITER ; DROP PACKAGE test2; {code} In case of package routines the name specified in {{END}} cannot be qualified. |
When running with {{sql_mode=ORACLE}}, MariaDB (the {{bb-10.2-compatibility}} branch) does not understand the optional function or procedure name after the {{END}} keyword which ends the entire routine definition. We'll extend the parser to understand the optional name, so this script is parsed without syntax errors:
{code:sql} SET sql_mode=ORACLE; DROP PROCEDURE p1; DELIMITER / CREATE PROCEDURE p1 AS BEGIN END p1; -- Notice p1 / DELIMITER ; {code} In case of stand-alone routines we'll also allow qualified names: {{END test.p1;}} Optional routine names are also possible inside a package body definition: {code:sql} DELIMITER $$ CREATE PACKAGE BODY test2 AS FUNCTION f1 RETURN INT AS BEGIN RETURN 10; END f1; PROCEDURE p1 AS BEGIN NULL; END p1; END test2; $$ DELIMITER ; DROP PACKAGE test2; {code} In case of package routines the name specified in {{END}} cannot be qualified. If the name specified in {{CREATE}} does not match the name specified in {{END}}, an error will be reported. Under terms of this patch we'll also fix {{CREATE PACKAGE}} and {{CREATE PACKAGE BODY}} to return an error if the name in {{CREATE}} does not match the name in {{END}}. |
Status | Open [ 1 ] | In Progress [ 3 ] |
issue.field.resolutiondate | 2017-02-20 15:22:00.0 | 2017-02-20 15:22:00.241 |
Component/s | Parser [ 10201 ] | |
Fix Version/s | 10.3.0 [ 22127 ] | |
Fix Version/s | 10.3 [ 22126 ] | |
Resolution | Fixed [ 1 ] | |
Status | In Progress [ 3 ] | Closed [ 6 ] |
Labels | Compatibility need_review |
Description |
When running with {{sql_mode=ORACLE}}, MariaDB (the {{bb-10.2-compatibility}} branch) does not understand the optional function or procedure name after the {{END}} keyword which ends the entire routine definition. We'll extend the parser to understand the optional name, so this script is parsed without syntax errors:
{code:sql} SET sql_mode=ORACLE; DROP PROCEDURE p1; DELIMITER / CREATE PROCEDURE p1 AS BEGIN END p1; -- Notice p1 / DELIMITER ; {code} In case of stand-alone routines we'll also allow qualified names: {{END test.p1;}} Optional routine names are also possible inside a package body definition: {code:sql} DELIMITER $$ CREATE PACKAGE BODY test2 AS FUNCTION f1 RETURN INT AS BEGIN RETURN 10; END f1; PROCEDURE p1 AS BEGIN NULL; END p1; END test2; $$ DELIMITER ; DROP PACKAGE test2; {code} In case of package routines the name specified in {{END}} cannot be qualified. If the name specified in {{CREATE}} does not match the name specified in {{END}}, an error will be reported. Under terms of this patch we'll also fix {{CREATE PACKAGE}} and {{CREATE PACKAGE BODY}} to return an error if the name in {{CREATE}} does not match the name in {{END}}. |
When running with {{sql_mode=ORACLE}}, MariaDB (the {{bb-10.2-compatibility}} branch) does not understand the optional function or procedure name after the {{END}} keyword which ends the entire routine definition. We'll extend the parser to understand the optional name, so this script is parsed without syntax errors:
{code:sql} SET sql_mode=ORACLE; DROP PROCEDURE p1; DELIMITER / CREATE PROCEDURE p1 AS BEGIN END p1; -- Notice p1 / DELIMITER ; {code} In case of stand-alone routines we'll also allow qualified names: {{END test.p1;}} h2. Originally this task included changes for package routines, but it does not any more: Optional routine names are also possible inside a package body definition: {code:sql} DELIMITER $$ CREATE PACKAGE BODY test2 AS FUNCTION f1 RETURN INT AS BEGIN RETURN 10; END f1; PROCEDURE p1 AS BEGIN NULL; END p1; END test2; $$ DELIMITER ; DROP PACKAGE test2; {code} In case of package routines the name specified in {{END}} cannot be qualified. If the name specified in {{CREATE}} does not match the name specified in {{END}}, an error will be reported. Under terms of this patch only fix traditional (stand-alone) stored functions and procedures. Handling the name after the {{END}} for package routines will be done in package related tasks (e.g. |
Description |
When running with {{sql_mode=ORACLE}}, MariaDB (the {{bb-10.2-compatibility}} branch) does not understand the optional function or procedure name after the {{END}} keyword which ends the entire routine definition. We'll extend the parser to understand the optional name, so this script is parsed without syntax errors:
{code:sql} SET sql_mode=ORACLE; DROP PROCEDURE p1; DELIMITER / CREATE PROCEDURE p1 AS BEGIN END p1; -- Notice p1 / DELIMITER ; {code} In case of stand-alone routines we'll also allow qualified names: {{END test.p1;}} h2. Originally this task included changes for package routines, but it does not any more: Optional routine names are also possible inside a package body definition: {code:sql} DELIMITER $$ CREATE PACKAGE BODY test2 AS FUNCTION f1 RETURN INT AS BEGIN RETURN 10; END f1; PROCEDURE p1 AS BEGIN NULL; END p1; END test2; $$ DELIMITER ; DROP PACKAGE test2; {code} In case of package routines the name specified in {{END}} cannot be qualified. If the name specified in {{CREATE}} does not match the name specified in {{END}}, an error will be reported. Under terms of this patch only fix traditional (stand-alone) stored functions and procedures. Handling the name after the {{END}} for package routines will be done in package related tasks (e.g. |
When running with {{sql_mode=ORACLE}}, MariaDB (the {{bb-10.2-compatibility}} branch) does not understand the optional function or procedure name after the {{END}} keyword which ends the entire routine definition. We'll extend the parser to understand the optional name, so this script is parsed without syntax errors:
{code:sql} SET sql_mode=ORACLE; DROP PROCEDURE p1; DELIMITER / CREATE PROCEDURE p1 AS BEGIN END p1; -- Notice p1 / DELIMITER ; {code} In case of stand-alone routines we'll also allow qualified names: {{END test.p1;}} h2. Originally this task included changes for package routines, but it does not any more: Optional routine names are also possible inside a package body definition: {code:sql} DELIMITER $$ CREATE PACKAGE BODY test2 AS FUNCTION f1 RETURN INT AS BEGIN RETURN 10; END f1; PROCEDURE p1 AS BEGIN NULL; END p1; END test2; $$ DELIMITER ; DROP PACKAGE test2; {code} In case of package routines the name specified in {{END}} cannot be qualified. If the name specified in {{CREATE}} does not match the name specified in {{END}}, an error will be reported. Under terms of this patch we'll only fix traditional (stand-alone) stored functions and procedures. Handling the name after the {{END}} for package routines will be done in package related tasks (e.g. |
Labels | Compatibility need_review | Compatibility Sto need_review |
Labels | Compatibility Sto need_review | Compatibility need_review |
Component/s | Stored routines [ 13905 ] |
Labels | Compatibility need_review | Compatibility |
Workflow | MariaDB v3 [ 79690 ] | MariaDB v4 [ 151725 ] |