[MDEV-23353] Qualified data types in SP Created: 2020-07-31  Updated: 2023-09-26

Status: Open
Project: MariaDB Server
Component/s: Data types
Fix Version/s: None

Type: Task Priority: Major
Reporter: Alexander Barkov Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: Oracle, sql_mode

Issue Links:
Relates
relates to MDEV-12252 ROW data type for stored function ret... In Review
relates to MDEV-19632 Replication aborts with ER_SLAVE_CONV... Closed
relates to MDEV-23023 Put compatibility functions and data ... Open

 Description   

Under terms of MDEV-19632 we're introducing qualified data types, e.g.:

SET sql_mode=ORACLE;
CREATE TABLE t1 (a mariadb_schema.DATE);

This syntax is needed for disambiguation.

In stored routines this syntax is not needed for disambiguation, because sql_mode is stored together with the SP definition, so data types are unambiguously parsed according to the SP sql_mode.

Anyway, for symmetry purposes, let's add qualified syntax inside SP definitions, to make qualified types work in:

  • Function return type

    SET sql_mode=ORACLE;
    DELIMITER $$
    CREATE FUNCTION f1() RETURN mariadb_schema.DATE AS
    BEGIN
      RETURN CURRENT_DATE;
    END;
    $$
    DELIMITER ;
    

  • Parameter type

    SET sql_mode=ORACLE;
    DELIMITER $$
    CREATE PROCEDURE p1(a mariadb_schema.DATE) AS
    BEGIN
      NULL;
    END;
    $$
    DELIMITER ;
    

  • Local variable type

    SET sql_mode=ORACLE;
    DELIMITER $$
    CREATE PROCEDURE p1() AS
      a mariadb_schema.DATE;
    BEGIN
      NULL;
    END;
    $$
    DELIMITER ;
    


Generated at Thu Feb 08 09:21:46 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.