summaryrefslogtreecommitdiff
path: root/sql/sp.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.org>2017-07-12 22:51:06 +0400
committerAlexander Barkov <bar@mariadb.org>2017-07-12 22:51:06 +0400
commit0f348bcd965cd47784634508da2202aba2dc0547 (patch)
tree31b7a3b309ec46e02355ab397c16a131e0ae07be /sql/sp.cc
parent7c3df72d0a627aa6c12af14d57b2664af7f8b380 (diff)
downloadmariadb-git-0f348bcd965cd47784634508da2202aba2dc0547.tar.gz
MDEV-13302 Avoid using LEX::spname during CREATE PROCEDURE and CREATE FUNCTION
Diffstat (limited to 'sql/sp.cc')
-rw-r--r--sql/sp.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/sql/sp.cc b/sql/sp.cc
index a01861b3d61..c80078ebe19 100644
--- a/sql/sp.cc
+++ b/sql/sp.cc
@@ -470,7 +470,8 @@ static TABLE *open_proc_table_for_update(THD *thd)
*/
static int
-db_find_routine_aux(THD *thd, stored_procedure_type type, const sp_name *name,
+db_find_routine_aux(THD *thd, stored_procedure_type type,
+ const Database_qualified_name *name,
TABLE *table)
{
uchar key[MAX_KEY_LENGTH]; // db, name, optional key length type
@@ -969,7 +970,7 @@ sp_returns_type(THD *thd, String &result, sp_head *sp)
*/
static int
sp_drop_routine_internal(THD *thd, stored_procedure_type type,
- const sp_name *name, TABLE *table)
+ const Database_qualified_name *name, TABLE *table)
{
DBUG_ENTER("sp_drop_routine_internal");
@@ -1079,11 +1080,11 @@ sp_create_routine(THD *thd, stored_procedure_type type, sp_head *sp)
else
{
/* Checking if the routine already exists */
- if (db_find_routine_aux(thd, type, lex->spname, table) == SP_OK)
+ if (db_find_routine_aux(thd, type, sp, table) == SP_OK)
{
if (lex->create_info.or_replace())
{
- if ((ret= sp_drop_routine_internal(thd, type, lex->spname, table)))
+ if ((ret= sp_drop_routine_internal(thd, type, sp, table)))
goto done;
}
else if (lex->create_info.if_not_exists())
@@ -1092,7 +1093,7 @@ sp_create_routine(THD *thd, stored_procedure_type type, sp_head *sp)
ER_SP_ALREADY_EXISTS,
ER_THD(thd, ER_SP_ALREADY_EXISTS),
SP_TYPE_STRING(type),
- lex->spname->m_name.str);
+ sp->m_name.str);
ret= FALSE;