Fix for valgrind warning introduced by the fix for bug#21354:

(COUNT(*) = 1) not working in SELECT inside prepared statement.
Note: the warning was introduced in 5.0 and 5.1, 4.1 is OK with the
original fix.

The problem was that in 5.0 and 5.1 clear() for group functions may
access hybrid_type member, and this member is initialized in
fix_fields().

So we should not call clear() from item cleanup() methods, as cleanup()
may be called for unfixed items.


sql/item_sum.cc:
  Do not call clear() from item cleanup() methods, as cleanup() may be
  called for unfixed items, and clear() assumes the item was fixed.
sql/item_sum.h:
  Do not call clear() from item cleanup() methods, as cleanup() may be
  called for unfixed items, and clear() assumes the item was fixed.
This commit is contained in:
unknown 2006-10-18 15:20:34 +04:00
commit cc558cfba3
2 changed files with 6 additions and 5 deletions

View file

@ -1055,7 +1055,7 @@ longlong Item_sum_count::val_int()
void Item_sum_count::cleanup()
{
DBUG_ENTER("Item_sum_count::cleanup");
clear();
count= 0;
Item_sum_int::cleanup();
used_table_cache= ~(table_map) 0;
DBUG_VOID_RETURN;