summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <sasha@mysql.sashanet.com>2001-05-24 18:00:52 -0600
committerunknown <sasha@mysql.sashanet.com>2001-05-24 18:00:52 -0600
commitabadbe124e549d1b2ee44961e505ae62bb12c56a (patch)
tree9aa9b9a1f9655b48f5e748c918b37c726b7d19ca
parent0270550e0c7d558874311cb35b8ecb471e51543e (diff)
downloadmariadb-git-abadbe124e549d1b2ee44961e505ae62bb12c56a.tar.gz
fixed bug in count(distinct)
sql/item_sum.cc: do not insert into deleted tree in count(distinct)
-rw-r--r--sql/item_sum.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc
index 6560fdedfd2..879c27178e5 100644
--- a/sql/item_sum.cc
+++ b/sql/item_sum.cc
@@ -986,9 +986,12 @@ bool Item_sum_count_distinct::add()
{
// if the tree got too big, convert to MyISAM, otherwise
// insert into the tree
- if((tree.elements_in_tree > max_elements_in_tree && tree_to_myisam())
- ||
- !tree_insert(&tree, table->record[0] + rec_offset, 0))
+ if(tree.elements_in_tree > max_elements_in_tree)
+ {
+ if(tree_to_myisam())
+ return 1;
+ }
+ else if(!tree_insert(&tree, table->record[0] + rec_offset, 0))
return 1;
}
else if ((error=table->file->write_row(table->record[0])))