diff options
-rw-r--r-- | mysql-test/suite/compat/oracle/r/sp.result | 14 | ||||
-rw-r--r-- | mysql-test/suite/compat/oracle/t/sp.test | 21 | ||||
-rw-r--r-- | sql/sql_yacc_ora.yy | 1 |
3 files changed, 36 insertions, 0 deletions
diff --git a/mysql-test/suite/compat/oracle/r/sp.result b/mysql-test/suite/compat/oracle/r/sp.result index 1716fd41edc..f5569360e44 100644 --- a/mysql-test/suite/compat/oracle/r/sp.result +++ b/mysql-test/suite/compat/oracle/r/sp.result @@ -107,6 +107,20 @@ SELECT @p1; @p1 p1new DROP PROCEDURE p1; +# Testing that NULL is a valid statement +CREATE PROCEDURE p1(a INT) AS +BEGIN +NULL; +END; +/ +DROP PROCEDURE p1; +CREATE PROCEDURE p1(a INT) AS +a INT:=10; +BEGIN +IF a=10 THEN NULL; ELSE NULL; END IF; +END; +/ +DROP PROCEDURE p1; # Testing that (some) keyword_sp are allowed in Oracle-style assignments CREATE PROCEDURE p1 (action OUT INT) AS BEGIN action:=10; END;/ DROP PROCEDURE p1/ diff --git a/mysql-test/suite/compat/oracle/t/sp.test b/mysql-test/suite/compat/oracle/t/sp.test index 9ac4dbc7aed..466f89b939b 100644 --- a/mysql-test/suite/compat/oracle/t/sp.test +++ b/mysql-test/suite/compat/oracle/t/sp.test @@ -118,6 +118,27 @@ CALL p1(@p1); SELECT @p1; DROP PROCEDURE p1; +--echo # Testing that NULL is a valid statement +DELIMITER /; +CREATE PROCEDURE p1(a INT) AS +BEGIN + NULL; +END; +/ +DELIMITER ;/ +DROP PROCEDURE p1; + +DELIMITER /; +CREATE PROCEDURE p1(a INT) AS + a INT:=10; +BEGIN + IF a=10 THEN NULL; ELSE NULL; END IF; +END; +/ +DELIMITER ;/ +DROP PROCEDURE p1; + + --echo # Testing that (some) keyword_sp are allowed in Oracle-style assignments DELIMITER /; CREATE PROCEDURE p1 (action OUT INT) AS BEGIN action:=10; END;/ diff --git a/sql/sql_yacc_ora.yy b/sql/sql_yacc_ora.yy index dbcccd3bced..200ea070952 100644 --- a/sql/sql_yacc_ora.yy +++ b/sql/sql_yacc_ora.yy @@ -2879,6 +2879,7 @@ sp_proc_stmt: | sp_proc_stmt_open | sp_proc_stmt_fetch | sp_proc_stmt_close + | NULL_SYM { } ; sp_proc_stmt_compound_ok: |