Skip to content

Commit

Permalink
MDEV-11275 sql_mode=ORACLE: CAST(..AS VARCHAR(N))
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Barkov committed Apr 5, 2017
1 parent f8a714c commit c0576ba
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 0 deletions.
9 changes: 9 additions & 0 deletions mysql-test/suite/compat/oracle/r/type_varchar.result
@@ -0,0 +1,9 @@
SET sql_mode=ORACLE;
#
# MDEV-11275 sql_mode=ORACLE: CAST(..AS VARCHAR(N))
#
SELECT CAST(123 AS VARCHAR(10)) FROM DUAL;
CAST(123 AS VARCHAR(10))
123
SELECT CAST(123 AS VARCHAR) FROM DUAL;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') FROM DUAL' at line 1
8 changes: 8 additions & 0 deletions mysql-test/suite/compat/oracle/r/type_varchar2.result
Expand Up @@ -13,3 +13,11 @@ t1 CREATE TABLE "t1" (
"a" varchar(10) DEFAULT NULL
)
DROP TABLE t1;
#
# MDEV-11275 sql_mode=ORACLE: CAST(..AS VARCHAR(N))
#
SELECT CAST(123 AS VARCHAR2(10)) FROM DUAL;
CAST(123 AS VARCHAR2(10))
123
SELECT CAST(123 AS VARCHAR2) FROM DUAL;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') FROM DUAL' at line 1
9 changes: 9 additions & 0 deletions mysql-test/suite/compat/oracle/t/type_varchar.test
@@ -0,0 +1,9 @@
SET sql_mode=ORACLE;

--echo #
--echo # MDEV-11275 sql_mode=ORACLE: CAST(..AS VARCHAR(N))
--echo #

SELECT CAST(123 AS VARCHAR(10)) FROM DUAL;
--error ER_PARSE_ERROR
SELECT CAST(123 AS VARCHAR) FROM DUAL;
9 changes: 9 additions & 0 deletions mysql-test/suite/compat/oracle/t/type_varchar2.test
Expand Up @@ -8,3 +8,12 @@ DROP TABLE varchar2;
CREATE TABLE t1 (a VARCHAR2(10));
SHOW CREATE TABLE t1;
DROP TABLE t1;


--echo #
--echo # MDEV-11275 sql_mode=ORACLE: CAST(..AS VARCHAR(N))
--echo #

SELECT CAST(123 AS VARCHAR2(10)) FROM DUAL;
--error ER_PARSE_ERROR
SELECT CAST(123 AS VARCHAR2) FROM DUAL;
8 changes: 8 additions & 0 deletions sql/sql_yacc_ora.yy
Expand Up @@ -10314,6 +10314,14 @@ cast_type:
{ Lex->charset= thd->variables.collation_connection; }
opt_binary
{ $$.set(ITEM_CAST_CHAR, $2); }
| VARCHAR field_length
{ Lex->charset= thd->variables.collation_connection; }
opt_binary
{ $$.set(ITEM_CAST_CHAR, $2); }
| VARCHAR2 field_length
{ Lex->charset= thd->variables.collation_connection; }
opt_binary
{ $$.set(ITEM_CAST_CHAR, $2); }
| NCHAR_SYM opt_field_length
{
Lex->charset= national_charset_info;
Expand Down

0 comments on commit c0576ba

Please sign in to comment.