diff options
author | unknown <malff@lambda.hsd1.co.comcast.net.> | 2007-10-16 15:43:16 -0600 |
---|---|---|
committer | unknown <malff@lambda.hsd1.co.comcast.net.> | 2007-10-16 15:43:16 -0600 |
commit | 1dc0efc606bf7f66402e7f9728b7e4a0a1fd82ec (patch) | |
tree | cd392457a794060b12c7e5bcea34b7bffb75708d /sql/sp.cc | |
parent | 3c6d858b6c1ee7b2f475e184b28a1af04ae256e3 (diff) | |
parent | 42b6424327763192c7fb4701f0ae93b7a52af89d (diff) | |
download | mariadb-git-1dc0efc606bf7f66402e7f9728b7e4a0a1fd82ec.tar.gz |
Merge lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.0-runtime
into lambda.hsd1.co.comcast.net.:/home/malff/TREE/mysql-5.1-rt-merge
mysql-test/t/sp-error.test:
Auto merged
mysql-test/t/udf.test:
Auto merged
sql/item.cc:
Auto merged
sql/sp.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_udf.cc:
Auto merged
mysql-test/r/sp-error.result:
failed auto merge
mysql-test/r/sp.result:
failed auto merge
mysql-test/r/udf.result:
failed auto merge
mysql-test/t/sp.test:
failed auto merge
sql/sp_head.cc:
failed auto merge
sql/sql_yacc.yy:
failed auto merge
Diffstat (limited to 'sql/sp.cc')
-rw-r--r-- | sql/sp.cc | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/sql/sp.cc b/sql/sp.cc index 6032688f7f1..9077862e2f6 100644 --- a/sql/sp.cc +++ b/sql/sp.cc @@ -1591,12 +1591,12 @@ static bool add_used_routine(LEX *lex, Query_arena *arena, { Sroutine_hash_entry *rn= (Sroutine_hash_entry *)arena->alloc(sizeof(Sroutine_hash_entry) + - key->length); + key->length + 1); if (!rn) // OOM. Error will be reported using fatal_error(). return FALSE; rn->key.length= key->length; rn->key.str= (char *)rn + sizeof(Sroutine_hash_entry); - memcpy(rn->key.str, key->str, key->length); + memcpy(rn->key.str, key->str, key->length + 1); my_hash_insert(&lex->sroutines, (uchar *)rn); lex->sroutines_list.link_in_list((uchar *)rn, (uchar **)&rn->next); rn->belong_to_view= belong_to_view; @@ -1779,7 +1779,7 @@ sp_cache_routines_and_add_tables_aux(THD *thd, LEX *lex, for (Sroutine_hash_entry *rt= start; rt; rt= rt->next) { - sp_name name(rt->key.str, rt->key.length); + sp_name name(thd, rt->key.str, rt->key.length); int type= rt->key.str[0]; sp_head *sp; @@ -1787,13 +1787,6 @@ sp_cache_routines_and_add_tables_aux(THD *thd, LEX *lex, &thd->sp_func_cache : &thd->sp_proc_cache), &name))) { - name.m_name.str= strchr(name.m_qname.str, '.'); - name.m_db.length= name.m_name.str - name.m_qname.str; - name.m_db.str= strmake_root(thd->mem_root, name.m_qname.str, - name.m_db.length); - name.m_name.str+= 1; - name.m_name.length= name.m_qname.length - name.m_db.length - 1; - switch ((ret= db_find_routine(thd, type, &name, &sp))) { case SP_OK: |