Loading mysql-test/t/func_default.test +10 −1 Original line number Diff line number Diff line Loading @@ -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; sql/item.cc +6 −8 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading
mysql-test/t/func_default.test +10 −1 Original line number Diff line number Diff line Loading @@ -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;
sql/item.cc +6 −8 Original line number Diff line number Diff line Loading @@ -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) { Loading