diff options
author | malff@lambda.hsd1.co.comcast.net. <> | 2007-10-16 15:43:16 -0600 |
---|---|---|
committer | malff@lambda.hsd1.co.comcast.net. <> | 2007-10-16 15:43:16 -0600 |
commit | a4c66084a8d746556899088b14b27a83f4f62182 (patch) | |
tree | cd392457a794060b12c7e5bcea34b7bffb75708d /sql | |
parent | a1978fefeee4b37975d4d1a3dc1d77904baf7da9 (diff) | |
parent | f3a6483945ff8af19bacfc25ea613d4968b491ba (diff) | |
download | mariadb-git-a4c66084a8d746556899088b14b27a83f4f62182.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
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sp.cc | 13 | ||||
-rw-r--r-- | sql/sp_head.h | 11 | ||||
-rw-r--r-- | sql/sql_parse.cc | 6 | ||||
-rw-r--r-- | sql/sql_udf.cc | 4 |
4 files changed, 6 insertions, 28 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: diff --git a/sql/sp_head.h b/sql/sp_head.h index 3a8b41acd4c..d74170534bd 100644 --- a/sql/sp_head.h +++ b/sql/sp_head.h @@ -129,16 +129,7 @@ public: Creates temporary sp_name object from key, used mainly for SP-cache lookups. */ - sp_name(char *key, uint key_len) - { - m_sroutines_key.str= key; - m_sroutines_key.length= key_len; - m_name.str= m_qname.str= key + 1; - m_name.length= m_qname.length= key_len - 1; - m_db.str= 0; - m_db.length= 0; - m_explicit_name= false; - } + sp_name(THD *thd, char *key, uint key_len); // Init. the qualified name from the db and name. void init_qname(THD *thd); // thd for memroot allocation diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 695e923e816..b04822c4fc9 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -3357,12 +3357,6 @@ end_with_restore_list: if (check_access(thd,INSERT_ACL,"mysql",0,1,0,0)) break; #ifdef HAVE_DLOPEN - if (sp_find_routine(thd, TYPE_ENUM_FUNCTION, lex->spname, - &thd->sp_func_cache, FALSE)) - { - my_error(ER_UDF_EXISTS, MYF(0), lex->spname->m_name.str); - goto error; - } if (!(res = mysql_create_function(thd, &lex->udf))) send_ok(thd); #else diff --git a/sql/sql_udf.cc b/sql/sql_udf.cc index 19582af38f4..1076772d598 100644 --- a/sql/sql_udf.cc +++ b/sql/sql_udf.cc @@ -415,7 +415,7 @@ int mysql_create_function(THD *thd,udf_func *udf) if (check_string_char_length(&udf->name, "", NAME_CHAR_LEN, system_charset_info, 1)) { - my_error(ER_TOO_LONG_IDENT, MYF(0), udf->name); + my_error(ER_TOO_LONG_IDENT, MYF(0), udf->name.str); DBUG_RETURN(1); } @@ -429,7 +429,7 @@ int mysql_create_function(THD *thd,udf_func *udf) rw_wrlock(&THR_LOCK_udf); if ((hash_search(&udf_hash,(uchar*) udf->name.str, udf->name.length))) { - my_error(ER_UDF_EXISTS, MYF(0), udf->name); + my_error(ER_UDF_EXISTS, MYF(0), udf->name.str); goto err; } if (!(dl = find_udf_dl(udf->dl))) |