summaryrefslogtreecommitdiff
path: root/sql/item_func.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r--sql/item_func.cc15
1 files changed, 14 insertions, 1 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc
index fdb0a5e5240..2a74f2801c0 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -3120,7 +3120,11 @@ Item_func_sp::execute(Item **itp)
if (! m_sp)
m_sp= sp_find_function(thd, m_name);
if (! m_sp)
+ {
+ my_printf_error(ER_SP_DOES_NOT_EXIST, ER(ER_SP_DOES_NOT_EXIST), MYF(0),
+ "FUNCTION", m_name->m_qname);
DBUG_RETURN(-1);
+ }
#ifndef NO_EMBEDDED_ACCESS_CHECKS
sp_change_security_context(thd, m_sp, &save_ctx);
@@ -3147,6 +3151,8 @@ Item_func_sp::field_type() const
DBUG_PRINT("info", ("m_returns = %d", m_sp->m_returns));
DBUG_RETURN(m_sp->m_returns);
}
+ my_printf_error(ER_SP_DOES_NOT_EXIST, ER(ER_SP_DOES_NOT_EXIST), MYF(0),
+ "FUNCTION", m_name->m_qname);
DBUG_RETURN(MYSQL_TYPE_STRING);
}
@@ -3162,6 +3168,8 @@ Item_func_sp::result_type() const
{
DBUG_RETURN(m_sp->result());
}
+ my_printf_error(ER_SP_DOES_NOT_EXIST, ER(ER_SP_DOES_NOT_EXIST), MYF(0),
+ "FUNCTION", m_name->m_qname);
DBUG_RETURN(STRING_RESULT);
}
@@ -3172,7 +3180,12 @@ Item_func_sp::fix_length_and_dec()
if (! m_sp)
m_sp= sp_find_function(current_thd, m_name);
- if (m_sp)
+ if (! m_sp)
+ {
+ my_printf_error(ER_SP_DOES_NOT_EXIST, ER(ER_SP_DOES_NOT_EXIST), MYF(0),
+ "FUNCTION", m_name->m_qname);
+ }
+ else
{
switch (m_sp->result()) {
case STRING_RESULT: