[MDEV-20913] sql_mode=ORACLE: INET6 does not work as a routine parameter type and return type Created: 2019-10-29  Updated: 2019-10-29  Resolved: 2019-10-29

Status: Closed
Project: MariaDB Server
Component/s: Parser
Affects Version/s: 10.5
Fix Version/s: 10.5.0

Type: Bug Priority: Major
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
blocks MDEV-12518 Unify sql_yacc.yy and sql_yacc_ora.yy Closed

 Description   

The below CREATE FUNCTION statements understand INET6 in both parameter list and in the RETURNS clause

SET sql_mode='';
CREATE OR REPLACE FUNCTION f1() RETURNS INET6 RETURN NULL;
CREATE OR REPLACE FUNCTION f1(a INET6) RETURNS INT RETURN NULL;

Equivalent CREATE FUNCTION statements in sql_mode=ORACLE return a syntax error:

SET sql_mode=ORACLE;
DELIMITER $$
CREATE OR REPLACE FUNCTION f1() RETURN INET6 AS
BEGIN
  RETURN NULL;
END;
$$
DELIMITER ;

ERROR 1064 (42000): You have an error in your SQL syntax ... near 'INET6 AS
BEGIN
  RETURN NULL;
END' at line 1

SET sql_mode=ORACLE;
DELIMITER $$
CREATE OR REPLACE FUNCTION f1(a INET6) RETURN INT AS
BEGIN
  RETURN NULL;
END;
$$
DELIMITER ;

ERROR 1064 (42000): You have an error in your SQL syntax ... near ') RETURN INT AS
BEGIN
  RETURN NULL;
END' at line 1


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