summaryrefslogtreecommitdiff
path: root/sql/item.cc
diff options
context:
space:
mode:
authorunknown <hf@deer.(none)>2005-06-14 17:43:51 +0500
committerunknown <hf@deer.(none)>2005-06-14 17:43:51 +0500
commit0473ce99fa1f9ed6ab2f37a3b043013dcd38c53e (patch)
tree7c282b77876ef0ab3ed7b6a25adad2ed6a5cdd44 /sql/item.cc
parentff40f3034917957fef5bb7f80e556d4835bc3410 (diff)
downloadmariadb-git-0473ce99fa1f9ed6ab2f37a3b043013dcd38c53e.tar.gz
Fix for bug #11314 (HAVING DEFAULT() hangs)
mysql-test/t/func_default.test: test result fixed sql/item.cc: code simplified using real_item() method, error returning added
Diffstat (limited to 'sql/item.cc')
-rw-r--r--sql/item.cc14
1 files changed, 6 insertions, 8 deletions
diff --git a/sql/item.cc b/sql/item.cc
index 680b771f908..5be43f3137d 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -4454,16 +4454,14 @@ bool Item_default_value::fix_fields(THD *thd,
}
if (!arg->fixed && arg->fix_fields(thd, table_list, &arg))
return TRUE;
-
- if (arg->type() == REF_ITEM)
+
+ arg= arg->real_item();
+ if (arg->type() != FIELD_ITEM)
{
- Item_ref *ref= (Item_ref *)arg;
- if (ref->ref[0]->type() != FIELD_ITEM)
- {
- return TRUE;
- }
- arg= ref->ref[0];
+ my_error(ER_NO_DEFAULT_FOR_FIELD, MYF(0), arg->name);
+ return TRUE;
}
+
field_arg= (Item_field *)arg;
if (field_arg->field->flags & NO_DEFAULT_VALUE_FLAG)
{