summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2017-07-12 19:31:01 +0200
committerSergei Golubchik <serg@mariadb.org>2017-07-13 11:23:54 +0200
commit27bc13b7a2f99a6011a5081670b320c685dde443 (patch)
tree5716bba31b153158f9fc3321069d0784ed1ff9bd /mysql-test
parente7f51e5d269ba8adb917226724564274a57d07b3 (diff)
downloadmariadb-git-27bc13b7a2f99a6011a5081670b320c685dde443.tar.gz
MDEV-12136 SELECT COUNT(DISTINCT) returns the wrong value when tmp_table_size is limited
Same MDEV, second bug. Merge buffer must fit at least MERGEBUFF2 (that is, 15) key values. Because merge_index() can merge that many buffers, and merge_many_buff() leaves that many buffers unmerged.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/count_distinct.result4
-rw-r--r--mysql-test/t/count_distinct.test2
2 files changed, 6 insertions, 0 deletions
diff --git a/mysql-test/r/count_distinct.result b/mysql-test/r/count_distinct.result
index 3decd5f60bc..d55a232c715 100644
--- a/mysql-test/r/count_distinct.result
+++ b/mysql-test/r/count_distinct.result
@@ -100,5 +100,9 @@ set @@tmp_table_size = 1024;
select count(distinct user_id) from t1;
count(distinct user_id)
17
+alter table t1 modify user_id char(128) character set utf8;
+select count(distinct user_id) from t1;
+count(distinct user_id)
+17
drop table t1;
set @@tmp_table_size = default;
diff --git a/mysql-test/t/count_distinct.test b/mysql-test/t/count_distinct.test
index ac97cdba357..a00574b6cba 100644
--- a/mysql-test/t/count_distinct.test
+++ b/mysql-test/t/count_distinct.test
@@ -115,6 +115,8 @@ create table t1 (user_id char(64) character set utf8);
insert t1 values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17);
set @@tmp_table_size = 1024;
select count(distinct user_id) from t1;
+alter table t1 modify user_id char(128) character set utf8;
+select count(distinct user_id) from t1;
drop table t1;
set @@tmp_table_size = default;