Commit bebe1828 authored by acurtis@xiphis.org's avatar acurtis@xiphis.org

Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-5.0

into  xiphis.org:/usr/home/antony/work2/p3-bug9048.2
parents 0c3c6f80 23c19b21
...@@ -3186,4 +3186,11 @@ end| ...@@ -3186,4 +3186,11 @@ end|
call bug11333(10)| call bug11333(10)|
drop procedure bug11333| drop procedure bug11333|
drop table t3| drop table t3|
drop function if exists bug9048|
create function bug9048(f1 char binary) returns char binary
begin
set f1= concat( 'hello', f1 );
return f1;
end|
drop function bug9048|
drop table t1,t2; drop table t1,t2;
...@@ -4030,6 +4030,19 @@ call bug11333(10)| ...@@ -4030,6 +4030,19 @@ call bug11333(10)|
drop procedure bug11333| drop procedure bug11333|
drop table t3| drop table t3|
#
# BUG#9048: Creating a function with char binary IN parameter fails
#
--disable_warnings
drop function if exists bug9048|
--enable_warnings
create function bug9048(f1 char binary) returns char binary
begin
set f1= concat( 'hello', f1 );
return f1;
end|
drop function bug9048|
# #
# BUG#NNNN: New bug synopsis # BUG#NNNN: New bug synopsis
# #
......
...@@ -2874,10 +2874,10 @@ type: ...@@ -2874,10 +2874,10 @@ type:
$$=FIELD_TYPE_STRING; } $$=FIELD_TYPE_STRING; }
| char opt_binary { Lex->length=(char*) "1"; | char opt_binary { Lex->length=(char*) "1";
$$=FIELD_TYPE_STRING; } $$=FIELD_TYPE_STRING; }
| nchar '(' NUM ')' { Lex->length=$3.str; | nchar '(' NUM ')' opt_bin_mod { Lex->length=$3.str;
$$=FIELD_TYPE_STRING; $$=FIELD_TYPE_STRING;
Lex->charset=national_charset_info; } Lex->charset=national_charset_info; }
| nchar { Lex->length=(char*) "1"; | nchar opt_bin_mod { Lex->length=(char*) "1";
$$=FIELD_TYPE_STRING; $$=FIELD_TYPE_STRING;
Lex->charset=national_charset_info; } Lex->charset=national_charset_info; }
| BINARY '(' NUM ')' { Lex->length=$3.str; | BINARY '(' NUM ')' { Lex->length=$3.str;
...@@ -2888,7 +2888,7 @@ type: ...@@ -2888,7 +2888,7 @@ type:
$$=FIELD_TYPE_STRING; } $$=FIELD_TYPE_STRING; }
| varchar '(' NUM ')' opt_binary { Lex->length=$3.str; | varchar '(' NUM ')' opt_binary { Lex->length=$3.str;
$$= MYSQL_TYPE_VARCHAR; } $$= MYSQL_TYPE_VARCHAR; }
| nvarchar '(' NUM ')' { Lex->length=$3.str; | nvarchar '(' NUM ')' opt_bin_mod { Lex->length=$3.str;
$$= MYSQL_TYPE_VARCHAR; $$= MYSQL_TYPE_VARCHAR;
Lex->charset=national_charset_info; } Lex->charset=national_charset_info; }
| VARBINARY '(' NUM ')' { Lex->length=$3.str; | VARBINARY '(' NUM ')' { Lex->length=$3.str;
...@@ -3077,7 +3077,6 @@ attribute: ...@@ -3077,7 +3077,6 @@ attribute:
lex->alter_info.flags|= ALTER_ADD_INDEX; lex->alter_info.flags|= ALTER_ADD_INDEX;
} }
| COMMENT_SYM TEXT_STRING_sys { Lex->comment= $2; } | COMMENT_SYM TEXT_STRING_sys { Lex->comment= $2; }
| BINARY { Lex->type|= BINCMP_FLAG; }
| COLLATE_SYM collation_name | COLLATE_SYM collation_name
{ {
if (Lex->charset && !my_charset_same(Lex->charset,$2)) if (Lex->charset && !my_charset_same(Lex->charset,$2))
...@@ -3162,8 +3161,27 @@ opt_default: ...@@ -3162,8 +3161,27 @@ opt_default:
opt_binary: opt_binary:
/* empty */ { Lex->charset=NULL; } /* empty */ { Lex->charset=NULL; }
| ASCII_SYM { Lex->charset=&my_charset_latin1; } | ASCII_SYM opt_bin_mod { Lex->charset=&my_charset_latin1; }
| BYTE_SYM { Lex->charset=&my_charset_bin; } | BYTE_SYM { Lex->charset=&my_charset_bin; }
| UNICODE_SYM opt_bin_mod
{
if (!(Lex->charset=get_charset_by_csname("ucs2",
MY_CS_PRIMARY,MYF(0))))
{
my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
YYABORT;
}
}
| charset charset_name opt_bin_mod { Lex->charset=$2; }
| BINARY opt_bin_charset { Lex->type|= BINCMP_FLAG; };
opt_bin_mod:
/* empty */ { }
| BINARY { Lex->type|= BINCMP_FLAG; };
opt_bin_charset:
/* empty */ { }
| ASCII_SYM { Lex->charset=&my_charset_latin1; }
| UNICODE_SYM | UNICODE_SYM
{ {
if (!(Lex->charset=get_charset_by_csname("ucs2", if (!(Lex->charset=get_charset_by_csname("ucs2",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment