Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDEV-10596 Allow VARCHAR and VARCHAR2 without length as a data type o…
…f routine parameters and in RETURN clause
- Loading branch information
Alexander Barkov
committed
Apr 5, 2017
1 parent
ec527fa
commit 02a72cf
Showing
5 changed files
with
360 additions
and
57 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
SET sql_mode=ORACLE; | ||
# | ||
# MDEV-10596 Allow VARCHAR and VARCHAR2 without length as a data type of routine parameters and in RETURN clause | ||
# | ||
CREATE FUNCTION f1(param CHAR) RETURN CHAR AS BEGIN RETURN param; END;; | ||
SHOW CREATE FUNCTION f1; | ||
Function sql_mode Create Function character_set_client collation_connection Database Collation | ||
f1 PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER CREATE DEFINER="root"@"localhost" FUNCTION "f1"(param CHAR) RETURN varchar(2000) CHARSET latin1 | ||
AS BEGIN RETURN param; END latin1 latin1_swedish_ci latin1_swedish_ci | ||
SELECT LENGTH(f1(REPEAT('a',2000)));; | ||
LENGTH(f1(REPEAT('a',2000))) | ||
2000 | ||
CREATE TABLE t1 AS SELECT f1(REPEAT('a',2000)) AS a;; | ||
SHOW CREATE TABLE t1; | ||
Table Create Table | ||
t1 CREATE TABLE "t1" ( | ||
"a" text DEFAULT NULL | ||
) | ||
DROP TABLE t1; | ||
DROP FUNCTION f1; | ||
CREATE FUNCTION f1(param NCHAR) RETURN NCHAR AS BEGIN RETURN param; END;; | ||
SHOW CREATE FUNCTION f1; | ||
Function sql_mode Create Function character_set_client collation_connection Database Collation | ||
f1 PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER CREATE DEFINER="root"@"localhost" FUNCTION "f1"(param NCHAR) RETURN varchar(2000) CHARSET utf8 | ||
AS BEGIN RETURN param; END latin1 latin1_swedish_ci latin1_swedish_ci | ||
SELECT LENGTH(f1(REPEAT('a',2000)));; | ||
LENGTH(f1(REPEAT('a',2000))) | ||
2000 | ||
CREATE TABLE t1 AS SELECT f1(REPEAT('a',2000)) AS a;; | ||
SHOW CREATE TABLE t1; | ||
Table Create Table | ||
t1 CREATE TABLE "t1" ( | ||
"a" text CHARACTER SET utf8 DEFAULT NULL | ||
) | ||
DROP TABLE t1; | ||
DROP FUNCTION f1; | ||
CREATE FUNCTION f1(param BINARY) RETURN BINARY AS BEGIN RETURN param; END;; | ||
SHOW CREATE FUNCTION f1; | ||
Function sql_mode Create Function character_set_client collation_connection Database Collation | ||
f1 PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER CREATE DEFINER="root"@"localhost" FUNCTION "f1"(param BINARY) RETURN varbinary(2000) | ||
AS BEGIN RETURN param; END latin1 latin1_swedish_ci latin1_swedish_ci | ||
SELECT LENGTH(f1(REPEAT('a',2000)));; | ||
LENGTH(f1(REPEAT('a',2000))) | ||
2000 | ||
CREATE TABLE t1 AS SELECT f1(REPEAT('a',2000)) AS a;; | ||
SHOW CREATE TABLE t1; | ||
Table Create Table | ||
t1 CREATE TABLE "t1" ( | ||
"a" blob DEFAULT NULL | ||
) | ||
DROP TABLE t1; | ||
DROP FUNCTION f1; | ||
CREATE FUNCTION f1(param VARCHAR) RETURN VARCHAR AS BEGIN RETURN param; END;; | ||
SHOW CREATE FUNCTION f1; | ||
Function sql_mode Create Function character_set_client collation_connection Database Collation | ||
f1 PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER CREATE DEFINER="root"@"localhost" FUNCTION "f1"(param VARCHAR) RETURN varchar(4000) CHARSET latin1 | ||
AS BEGIN RETURN param; END latin1 latin1_swedish_ci latin1_swedish_ci | ||
SELECT LENGTH(f1(REPEAT('a',4000)));; | ||
LENGTH(f1(REPEAT('a',4000))) | ||
4000 | ||
CREATE TABLE t1 AS SELECT f1(REPEAT('a',4000)) AS a;; | ||
SHOW CREATE TABLE t1; | ||
Table Create Table | ||
t1 CREATE TABLE "t1" ( | ||
"a" text DEFAULT NULL | ||
) | ||
DROP TABLE t1; | ||
DROP FUNCTION f1; | ||
CREATE FUNCTION f1(param VARCHAR2) RETURN VARCHAR2 AS BEGIN RETURN param; END;; | ||
SHOW CREATE FUNCTION f1; | ||
Function sql_mode Create Function character_set_client collation_connection Database Collation | ||
f1 PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER CREATE DEFINER="root"@"localhost" FUNCTION "f1"(param VARCHAR2) RETURN varchar(4000) CHARSET latin1 | ||
AS BEGIN RETURN param; END latin1 latin1_swedish_ci latin1_swedish_ci | ||
SELECT LENGTH(f1(REPEAT('a',4000)));; | ||
LENGTH(f1(REPEAT('a',4000))) | ||
4000 | ||
CREATE TABLE t1 AS SELECT f1(REPEAT('a',4000)) AS a;; | ||
SHOW CREATE TABLE t1; | ||
Table Create Table | ||
t1 CREATE TABLE "t1" ( | ||
"a" text DEFAULT NULL | ||
) | ||
DROP TABLE t1; | ||
DROP FUNCTION f1; | ||
CREATE FUNCTION f1(param NVARCHAR) RETURN NVARCHAR AS BEGIN RETURN param; END;; | ||
SHOW CREATE FUNCTION f1; | ||
Function sql_mode Create Function character_set_client collation_connection Database Collation | ||
f1 PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER CREATE DEFINER="root"@"localhost" FUNCTION "f1"(param NVARCHAR) RETURN varchar(4000) CHARSET utf8 | ||
AS BEGIN RETURN param; END latin1 latin1_swedish_ci latin1_swedish_ci | ||
SELECT LENGTH(f1(REPEAT('a',4000)));; | ||
LENGTH(f1(REPEAT('a',4000))) | ||
4000 | ||
CREATE TABLE t1 AS SELECT f1(REPEAT('a',4000)) AS a;; | ||
SHOW CREATE TABLE t1; | ||
Table Create Table | ||
t1 CREATE TABLE "t1" ( | ||
"a" text CHARACTER SET utf8 DEFAULT NULL | ||
) | ||
DROP TABLE t1; | ||
DROP FUNCTION f1; | ||
CREATE FUNCTION f1(param VARBINARY) RETURN VARBINARY AS BEGIN RETURN param; END;; | ||
SHOW CREATE FUNCTION f1; | ||
Function sql_mode Create Function character_set_client collation_connection Database Collation | ||
f1 PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER CREATE DEFINER="root"@"localhost" FUNCTION "f1"(param VARBINARY) RETURN varbinary(4000) | ||
AS BEGIN RETURN param; END latin1 latin1_swedish_ci latin1_swedish_ci | ||
SELECT LENGTH(f1(REPEAT('a',4000)));; | ||
LENGTH(f1(REPEAT('a',4000))) | ||
4000 | ||
CREATE TABLE t1 AS SELECT f1(REPEAT('a',4000)) AS a;; | ||
SHOW CREATE TABLE t1; | ||
Table Create Table | ||
t1 CREATE TABLE "t1" ( | ||
"a" blob DEFAULT NULL | ||
) | ||
DROP TABLE t1; | ||
DROP FUNCTION f1; | ||
CREATE FUNCTION f1(param RAW) RETURN RAW AS BEGIN RETURN param; END;; | ||
SHOW CREATE FUNCTION f1; | ||
Function sql_mode Create Function character_set_client collation_connection Database Collation | ||
f1 PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER CREATE DEFINER="root"@"localhost" FUNCTION "f1"(param RAW) RETURN varbinary(4000) | ||
AS BEGIN RETURN param; END latin1 latin1_swedish_ci latin1_swedish_ci | ||
SELECT LENGTH(f1(REPEAT('a',4000)));; | ||
LENGTH(f1(REPEAT('a',4000))) | ||
4000 | ||
CREATE TABLE t1 AS SELECT f1(REPEAT('a',4000)) AS a;; | ||
SHOW CREATE TABLE t1; | ||
Table Create Table | ||
t1 CREATE TABLE "t1" ( | ||
"a" blob DEFAULT NULL | ||
) | ||
DROP TABLE t1; | ||
DROP FUNCTION f1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--eval CREATE FUNCTION f1(param $type) RETURN $type AS BEGIN RETURN param; END; | ||
SHOW CREATE FUNCTION f1; | ||
|
||
--eval SELECT LENGTH(f1(REPEAT('a',$length))); | ||
--eval CREATE TABLE t1 AS SELECT f1(REPEAT('a',$length)) AS a; | ||
|
||
SHOW CREATE TABLE t1; | ||
DROP TABLE t1; | ||
DROP FUNCTION f1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
SET sql_mode=ORACLE; | ||
|
||
--echo # | ||
--echo # MDEV-10596 Allow VARCHAR and VARCHAR2 without length as a data type of routine parameters and in RETURN clause | ||
--echo # | ||
|
||
--let type = CHAR | ||
--let length = 2000 | ||
--source sp-param.inc | ||
|
||
--let type = NCHAR | ||
--let length = 2000 | ||
--source sp-param.inc | ||
|
||
--let type = BINARY | ||
--let length = 2000 | ||
--source sp-param.inc | ||
|
||
--let type = VARCHAR | ||
--let length = 4000 | ||
--source sp-param.inc | ||
|
||
--let type = VARCHAR2 | ||
--let length = 4000 | ||
--source sp-param.inc | ||
|
||
--let type = NVARCHAR | ||
--let length = 4000 | ||
--source sp-param.inc | ||
|
||
--let type = VARBINARY | ||
--let length = 4000 | ||
--source sp-param.inc | ||
|
||
--let type = RAW | ||
--let length = 4000 | ||
--source sp-param.inc |
Oops, something went wrong.