summaryrefslogtreecommitdiff
path: root/sql/item_sum.cc
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
commit403b38ee5091e74df8adb6ee0c644903a82ffcad (patch)
tree9aa9b9a1f9655b48f5e748c918b37c726b7d19ca /sql/item_sum.cc
parentb7b409b76ee4c2817a882b3f08cb30890dd8532a (diff)
downloadmariadb-git-403b38ee5091e74df8adb6ee0c644903a82ffcad.tar.gz
fixed bug in count(distinct)
sql/item_sum.cc: do not insert into deleted tree in count(distinct)
Diffstat (limited to 'sql/item_sum.cc')
-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])))