Commit 0473ce99 authored by unknown's avatar unknown

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
parent ff40f303
......@@ -17,3 +17,12 @@ explain select * from t1 where str <> default(str);
#insert into t2 select select default(str), default(strnull), default(intg), default(rel) from t1;
drop table t1;
#
# Bug #11314 (HAVING DEFAULT() hangs)
#
CREATE TABLE t1 (s varchar(20), id int(11));
INSERT INTO t1 VALUES (1, 'one'), (2, 'two'), (3, 'three');
SELECT s, 32 AS mi FROM t1 GROUP BY s HAVING DEFAULT(mi) IS NULL;
DROP TABLE t1;
......@@ -4455,15 +4455,13 @@ 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)
{
Item_ref *ref= (Item_ref *)arg;
if (ref->ref[0]->type() != FIELD_ITEM)
arg= arg->real_item();
if (arg->type() != FIELD_ITEM)
{
my_error(ER_NO_DEFAULT_FOR_FIELD, MYF(0), arg->name);
return TRUE;
}
arg= ref->ref[0];
}
field_arg= (Item_field *)arg;
if (field_arg->field->flags & NO_DEFAULT_VALUE_FLAG)
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment