From b7b409b76ee4c2817a882b3f08cb30890dd8532a Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 24 May 2001 17:06:53 -0600 Subject: handle tree overflow in count(distinct) test heap table/tree overflow in count(distinct) mysql-test/r/count_distinct2.result: added test for tree/heap table overflow mysql-test/t/count_distinct2.test: test tree/heap table overflow sql/item_sum.cc: handle tree overflow in count(distinct) sql/item_sum.h: t --- mysql-test/r/count_distinct2.result | 8 ++++++++ mysql-test/t/count_distinct2-master.opt | 1 + mysql-test/t/count_distinct2.test | 29 +++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 mysql-test/t/count_distinct2-master.opt (limited to 'mysql-test') diff --git a/mysql-test/r/count_distinct2.result b/mysql-test/r/count_distinct2.result index b8330835332..3586910e8b3 100644 --- a/mysql-test/r/count_distinct2.result +++ b/mysql-test/r/count_distinct2.result @@ -74,3 +74,11 @@ count(distinct n2) n1 1 NULL 1 1 3 2 +count(distinct n) +5000 +Variable_name Value +Created_tmp_disk_tables 1 +count(distinct s) +5000 +Variable_name Value +Created_tmp_disk_tables 1 diff --git a/mysql-test/t/count_distinct2-master.opt b/mysql-test/t/count_distinct2-master.opt new file mode 100644 index 00000000000..8f1be6dce3a --- /dev/null +++ b/mysql-test/t/count_distinct2-master.opt @@ -0,0 +1 @@ +-O max_heap_table_size=16384 diff --git a/mysql-test/t/count_distinct2.test b/mysql-test/t/count_distinct2.test index 5ddd96198fe..2447a7c3611 100644 --- a/mysql-test/t/count_distinct2.test +++ b/mysql-test/t/count_distinct2.test @@ -43,3 +43,32 @@ select count(distinct n1), count(distinct n2) from t1; select count(distinct n2), n1 from t1 group by n1; drop table t1; + +# test the converstion from tree to MyISAM +create table t1 (n int); +let $1=5000; +while ($1) +{ + eval insert into t1 values($1); + dec $1; +} + +flush status; +select count(distinct n) from t1; +show status like 'Created_tmp_disk_tables'; +drop table t1; + +#test conversion from heap to MyISAM +create table t1 (s text); +let $1=5000; +while ($1) +{ + eval insert into t1 values('$1'); + dec $1; +} + +flush status; +select count(distinct s) from t1; +show status like 'Created_tmp_disk_tables'; +drop table t1; + -- cgit v1.2.1