diff --git a/mysql-test/r/type_nchar.result b/mysql-test/r/type_nchar.result new file mode 100644 index 00000000000..e69de29bb2d diff --git a/mysql-test/t/type_nchar.test b/mysql-test/t/type_nchar.test new file mode 100644 index 00000000000..e85609e3f0c --- /dev/null +++ b/mysql-test/t/type_nchar.test @@ -0,0 +1,35 @@ +# +# Test nchar/nvarchar +# +--disable_warnings +drop table if exists t1; +--enable_warnings + +create table t1 (c nchar(10)); +show create table t1; +drop table t1; + +create table t1 (c national char(10)); +show create table t1; +drop table t1; + +create table t1 (c national varchar(10)); +show create table t1; +drop table t1; + +create table t1 (c nvarchar(10)); +show create table t1; +drop table t1; + +create table t1 (c nchar varchar(10)); +show create table t1; +drop table t1; + +create table t1 (c national character varying(10)); +show create table t1; +drop table t1; + +create table t1 (c nchar varying(10)); +show create table t1; +drop table t1; + diff --git a/sql/lex.h b/sql/lex.h index fb3c018de42..e11b50ed16d 100644 --- a/sql/lex.h +++ b/sql/lex.h @@ -293,6 +293,7 @@ static SYMBOL symbols[] = { { "NOT", SYM(NOT),0,0}, { "NULL", SYM(NULL_SYM),0,0}, { "NUMERIC", SYM(NUMERIC_SYM),0,0}, + { "NVARCHAR", SYM(NVARCHAR_SYM),0,0}, { "OFFSET", SYM(OFFSET_SYM),0,0}, { "OLD_PASSWORD", SYM(OLD_PASSWORD),0,0}, { "ON", SYM(ON),0,0}, diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 54d708fef04..2a35c03f3b4 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -302,6 +302,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize); %token NEW_SYM %token NCHAR_SYM %token NCHAR_STRING +%token NVARCHAR_SYM %token NOT %token NO_SYM %token NULL_SYM @@ -1339,6 +1340,7 @@ varchar: nvarchar: NATIONAL_SYM VARCHAR {} + | NVARCHAR_SYM {} | NCHAR_SYM VARCHAR {} | NATIONAL_SYM CHAR_SYM VARYING {} | NCHAR_SYM VARYING {} @@ -4568,6 +4570,7 @@ keyword: | NEW_SYM {} | NO_SYM {} | NONE_SYM {} + | NVARCHAR_SYM {} | OFFSET_SYM {} | OLD_PASSWORD {} | OPEN_SYM {}