summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <hf@deer.(none)>2005-06-14 20:04:42 +0500
committerunknown <hf@deer.(none)>2005-06-14 20:04:42 +0500
commitd5600efdc1ec98c1b9ef7190565788e7174e45f0 (patch)
tree1bfa9c9de8321e5c0f7eb9120aa9a78cefe5c26e
parent38cf777005ff9cfa61e2fe884338a8ee2fb6bc01 (diff)
downloadmariadb-git-d5600efdc1ec98c1b9ef7190565788e7174e45f0.tar.gz
Final patch to the bug #11314 (HAVING DEFAULT hangs)
sql/item.cc: it's safer not to reassign arg member
-rw-r--r--sql/item.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/sql/item.cc b/sql/item.cc
index 5be43f3137d..17190d17ae1 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -4443,6 +4443,7 @@ bool Item_default_value::fix_fields(THD *thd,
struct st_table_list *table_list,
Item **items)
{
+ Item *real_arg;
Item_field *field_arg;
Field *def_field;
DBUG_ASSERT(fixed == 0);
@@ -4455,14 +4456,14 @@ bool Item_default_value::fix_fields(THD *thd,
if (!arg->fixed && arg->fix_fields(thd, table_list, &arg))
return TRUE;
- arg= arg->real_item();
- if (arg->type() != FIELD_ITEM)
+ real_arg= arg->real_item();
+ if (real_arg->type() != FIELD_ITEM)
{
my_error(ER_NO_DEFAULT_FOR_FIELD, MYF(0), arg->name);
return TRUE;
}
- field_arg= (Item_field *)arg;
+ field_arg= (Item_field *)real_arg;
if (field_arg->field->flags & NO_DEFAULT_VALUE_FLAG)
{
my_error(ER_NO_DEFAULT_FOR_FIELD, MYF(0), field_arg->field->field_name);