diff options
author | unknown <acurtis@ltantony.rdg.cyberkinetica.homeunix.net> | 2005-03-08 22:32:09 +0000 |
---|---|---|
committer | unknown <acurtis@ltantony.rdg.cyberkinetica.homeunix.net> | 2005-03-08 22:32:09 +0000 |
commit | ce16c895c243107b66507242539544d5bbec8841 (patch) | |
tree | a0cecfd9009503e0a1a4a4e424a679143292ab71 /sql/sql_yacc.yy | |
parent | fe3a425a94dd321844fab1867811016b9e5343c7 (diff) | |
parent | 1220069c537a733b233c446e27aec9f9247aef31 (diff) | |
download | mariadb-git-ce16c895c243107b66507242539544d5bbec8841.tar.gz |
Merge in fix Bug#3788
mysql-test/r/information_schema.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/item.cc:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_func.h:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
mysql-test/r/sp.result:
Merge
BitKeeper/etc/logging_ok:
Logging to logging@openlogging.org accepted
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index fae01502a8d..212f004e3bf 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1372,19 +1372,37 @@ create_function_tail: RETURNS_SYM { LEX *lex= Lex; - sp_head *sp= lex->sphead; - - sp->m_returns_begin= lex->tok_start; - sp->m_returns_cs= lex->charset= NULL; + lex->charset= NULL; + lex->length= lex->dec= NULL; + lex->interval_list.empty(); + lex->type= 0; } type { LEX *lex= Lex; sp_head *sp= lex->sphead; + LEX_STRING cmt = { 0, 0 }; + create_field *new_field; + uint unused1= 0; + int unused2= 0; + + if (!(new_field= new_create_field(YYTHD, "", (enum enum_field_types)$8, + lex->length, lex->dec, lex->type, + (Item *)0, (Item *) 0, &cmt, 0, &lex->interval_list, + (lex->charset ? lex->charset : default_charset_info), + lex->uint_geom_type))) + YYABORT; + + if (prepare_create_field(new_field, unused1, unused2, unused2, 0)) + YYABORT; + + sp->m_returns= new_field->sql_type; + sp->m_returns_cs= new_field->charset; + sp->m_returns_len= new_field->length; + sp->m_returns_pack= new_field->pack_flag; + sp->m_returns_typelib= + sp->create_typelib(&new_field->interval_list); - sp->m_returns_end= lex->tok_start; - sp->m_returns= (enum enum_field_types)$8; - sp->m_returns_cs= lex->charset; bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); } sp_c_chistics |