diff options
author | unknown <hf@deer.(none)> | 2005-06-14 17:43:51 +0500 |
---|---|---|
committer | unknown <hf@deer.(none)> | 2005-06-14 17:43:51 +0500 |
commit | 0473ce99fa1f9ed6ab2f37a3b043013dcd38c53e (patch) | |
tree | 7c282b77876ef0ab3ed7b6a25adad2ed6a5cdd44 /sql/item.cc | |
parent | ff40f3034917957fef5bb7f80e556d4835bc3410 (diff) | |
download | mariadb-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.cc | 14 |
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) { |