summaryrefslogtreecommitdiff
path: root/sql/sp_head.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sp_head.cc')
-rw-r--r--sql/sp_head.cc20
1 files changed, 13 insertions, 7 deletions
diff --git a/sql/sp_head.cc b/sql/sp_head.cc
index c76ed813bc6..8406e83850c 100644
--- a/sql/sp_head.cc
+++ b/sql/sp_head.cc
@@ -241,6 +241,10 @@ sp_eval_func_item(THD *thd, Item **it_addr, enum enum_field_types type,
Item *old_item_next, *old_free_list, **p_free_list;
DBUG_PRINT("info", ("type: %d", type));
+ LINT_INIT(old_item_next);
+ LINT_INIT(old_free_list);
+ LINT_INIT(p_free_list);
+
if (!it)
DBUG_RETURN(NULL);
@@ -515,7 +519,7 @@ void
sp_head::init_strings(THD *thd, LEX *lex, sp_name *name)
{
DBUG_ENTER("sp_head::init_strings");
- uchar *endp; /* Used to trim the end */
+ const uchar *endp; /* Used to trim the end */
/* During parsing, we must use thd->mem_root */
MEM_ROOT *root= thd->mem_root;
@@ -707,12 +711,14 @@ sp_head::make_field(uint max_length, const char *name, TABLE *dummy)
Field *field;
DBUG_ENTER("sp_head::make_field");
- field= ::make_field((char *)0,
- !m_returns_len ? max_length : m_returns_len,
- (uchar *)"", 0, m_returns_pack, m_returns, m_returns_cs,
- m_geom_returns, Field::NONE,
- m_returns_typelib,
- name ? name : (const char *)m_name.str, dummy);
+ field= ::make_field(dummy->s, (char *)0,
+ !m_returns_len ? max_length : m_returns_len,
+ (uchar *)"", 0, m_returns_pack, m_returns, m_returns_cs,
+ m_geom_returns, Field::NONE,
+ m_returns_typelib,
+ name ? name : (const char *)m_name.str);
+ if (field)
+ field->init(dummy);
DBUG_RETURN(field);
}