Commit ef055c33 authored by unknown's avatar unknown
Browse files

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

into  xiphis.org:/usr/home/antony/work2/p3-bug9048.2

parents f0aeadcd bddf61cf
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -3186,4 +3186,11 @@ end|
call bug11333(10)|
drop procedure bug11333|
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;
+13 −0
Original line number Diff line number Diff line
@@ -4030,6 +4030,19 @@ call bug11333(10)|
drop procedure bug11333|
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
#
+23 −5
Original line number Diff line number Diff line
@@ -2874,10 +2874,10 @@ type:
					  $$=FIELD_TYPE_STRING; }
	| char opt_binary		{ Lex->length=(char*) "1";
					  $$=FIELD_TYPE_STRING; }
	| nchar '(' NUM ')'		{ Lex->length=$3.str;
	| nchar '(' NUM ')' opt_bin_mod	{ Lex->length=$3.str;
					  $$=FIELD_TYPE_STRING;
					  Lex->charset=national_charset_info; }
	| nchar				{ Lex->length=(char*) "1";
	| nchar opt_bin_mod		{ Lex->length=(char*) "1";
					  $$=FIELD_TYPE_STRING;
					  Lex->charset=national_charset_info; }
	| BINARY '(' NUM ')'		{ Lex->length=$3.str;
@@ -2888,7 +2888,7 @@ type:
					  $$=FIELD_TYPE_STRING; }
	| varchar '(' NUM ')' opt_binary { Lex->length=$3.str;
					  $$= MYSQL_TYPE_VARCHAR; }
	| nvarchar '(' NUM ')'		{ Lex->length=$3.str;
	| nvarchar '(' NUM ')' opt_bin_mod { Lex->length=$3.str;
					  $$= MYSQL_TYPE_VARCHAR;
					  Lex->charset=national_charset_info; }
	| VARBINARY '(' NUM ')' 	{ Lex->length=$3.str;
@@ -3077,7 +3077,6 @@ attribute:
	    lex->alter_info.flags|= ALTER_ADD_INDEX; 
	  }
	| COMMENT_SYM TEXT_STRING_sys { Lex->comment= $2; }
	| BINARY { Lex->type|= BINCMP_FLAG; }
	| COLLATE_SYM collation_name
	  {
	    if (Lex->charset && !my_charset_same(Lex->charset,$2))
@@ -3162,8 +3161,27 @@ opt_default:

opt_binary:
	/* 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; }
	| 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
	{
	  if (!(Lex->charset=get_charset_by_csname("ucs2",