summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/item.cc6
-rw-r--r--sql/item.h8
-rw-r--r--sql/item_func.cc6
-rw-r--r--sql/item_func.h2
-rw-r--r--sql/sp_head.cc4
5 files changed, 13 insertions, 13 deletions
diff --git a/sql/item.cc b/sql/item.cc
index fbdb0aa687b..ba378e56cb0 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -958,7 +958,7 @@ void Item_splocal::print(String *str)
}
-bool Item_splocal::set_value(THD *thd, sp_rcontext *ctx, Item *it)
+bool Item_splocal::set_value(THD *thd, sp_rcontext *ctx, Item **it)
{
return ctx->set_variable(thd, get_var_idx(), it);
}
@@ -5375,9 +5375,9 @@ void Item_trigger_field::set_required_privilege(const bool rw)
}
-bool Item_trigger_field::set_value(THD *thd, sp_rcontext */*ctx*/, Item *it)
+bool Item_trigger_field::set_value(THD *thd, sp_rcontext */*ctx*/, Item **it)
{
- Item *item= sp_prepare_func_item(thd, &it);
+ Item *item= sp_prepare_func_item(thd, it);
return (!item || (!fixed && fix_fields(thd, 0)) ||
(item->save_in_field(field, 0) < 0));
diff --git a/sql/item.h b/sql/item.h
index 617690e1fd9..cfc2306f15d 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -404,7 +404,7 @@ public:
FALSE if parameter value has been set,
TRUE if error has occured.
*/
- virtual bool set_value(THD *thd, sp_rcontext *ctx, Item *it)= 0;
+ virtual bool set_value(THD *thd, sp_rcontext *ctx, Item **it)= 0;
};
@@ -928,7 +928,7 @@ public:
inline Item_result result_type() const;
private:
- bool set_value(THD *thd, sp_rcontext *ctx, Item *it);
+ bool set_value(THD *thd, sp_rcontext *ctx, Item **it);
public:
Settable_routine_parameter *get_settable_routine_parameter()
@@ -2188,7 +2188,7 @@ public:
private:
void set_required_privilege(const bool rw);
- bool set_value(THD *thd, sp_rcontext *ctx, Item *it);
+ bool set_value(THD *thd, sp_rcontext *ctx, Item **it);
public:
Settable_routine_parameter *get_settable_routine_parameter()
@@ -2196,7 +2196,7 @@ public:
return (read_only ? 0 : this);
}
- bool set_value(THD *thd, Item *it)
+ bool set_value(THD *thd, Item **it)
{
return set_value(thd, NULL, it);
}
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 058650fb17f..5ef9db6f52b 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -4121,14 +4121,14 @@ bool Item_func_get_user_var::eq(const Item *item, bool binary_cmp) const
bool Item_func_get_user_var::set_value(THD *thd,
- sp_rcontext */*ctx*/, Item *it)
+ sp_rcontext */*ctx*/, Item **it)
{
- Item_func_set_user_var *suv= new Item_func_set_user_var(get_name(), it);
+ Item_func_set_user_var *suv= new Item_func_set_user_var(get_name(), *it);
/*
Item_func_set_user_var is not fixed after construction, call
fix_fields().
*/
- return (!suv || suv->fix_fields(thd, &it) || suv->check() || suv->update());
+ return (!suv || suv->fix_fields(thd, it) || suv->check() || suv->update());
}
diff --git a/sql/item_func.h b/sql/item_func.h
index 890927aaccd..1d8a1bd5e22 100644
--- a/sql/item_func.h
+++ b/sql/item_func.h
@@ -1209,7 +1209,7 @@ public:
bool eq(const Item *item, bool binary_cmp) const;
private:
- bool set_value(THD *thd, sp_rcontext *ctx, Item *it);
+ bool set_value(THD *thd, sp_rcontext *ctx, Item **it);
public:
Settable_routine_parameter *get_settable_routine_parameter()
diff --git a/sql/sp_head.cc b/sql/sp_head.cc
index d5c57eca76e..174f62c9497 100644
--- a/sql/sp_head.cc
+++ b/sql/sp_head.cc
@@ -1552,7 +1552,7 @@ sp_head::execute_procedure(THD *thd, List<Item> *args)
DBUG_ASSERT(srp);
- if (srp->set_value(thd, octx, nctx->get_item(i)))
+ if (srp->set_value(thd, octx, nctx->get_item_addr(i)))
{
err_status= TRUE;
break;
@@ -2393,7 +2393,7 @@ sp_instr_set_trigger_field::execute(THD *thd, uint *nextp)
int
sp_instr_set_trigger_field::exec_core(THD *thd, uint *nextp)
{
- const int res= (trigger_field->set_value(thd, value) ? -1 : 0);
+ const int res= (trigger_field->set_value(thd, &value) ? -1 : 0);
*nextp = m_ip+1;
return res;
}