diff options
Diffstat (limited to 'mysql-test/main/count_distinct3.test')
-rw-r--r-- | mysql-test/main/count_distinct3.test | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/mysql-test/main/count_distinct3.test b/mysql-test/main/count_distinct3.test new file mode 100644 index 00000000..8aecd628 --- /dev/null +++ b/mysql-test/main/count_distinct3.test @@ -0,0 +1,52 @@ +# Bug #958 a big table without indices and select with group by doesnt work +# this is a test for error 1032 in count(distinct) + group by, introduced in +# mysql-4.1 +# + +# Slow test +--source include/big_test.inc +--disable_warnings +DROP TABLE IF EXISTS t1, t2; +--enable_warnings + +CREATE TABLE t1 (id INTEGER, grp TINYINT, id_rev INTEGER); + +--disable_query_log +SET @rnd_max= 2147483647; +let $1 = 1000; +begin; +while ($1) +{ + SET @rnd= RAND(); + SET @id = CAST(@rnd * @rnd_max AS UNSIGNED); + SET @id_rev= @rnd_max - @id; + SET @grp= CAST(127.0 * @rnd AS UNSIGNED); + INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev); + dec $1; +} +commit; +# We increase the size of t1 here. +SET @orig_myisam_sort_buffer_size = @@session.myisam_sort_buffer_size; +SET session myisam_sort_buffer_size=20000000; +INSERT INTO t1 +SELECT A.id, A.grp, A.id_rev +FROM + t1 A, + (SELECT * FROM t1 B LIMIT 100) B, + (SELECT * FROM t1 Z LIMIT 42) Z; +--enable_query_log + +SELECT COUNT(*) FROM t1; + +# As t1 contains random numbers, results are different from test to test. +# That's okay, because we test only that select doesn't yield an +# error. Note, that --disable_result_log doesn't suppress error output. +--disable_result_log +SELECT COUNT(DISTINCT id) FROM t1 GROUP BY grp; +--enable_result_log + +--echo # Begin cleanup +SET session myisam_sort_buffer_size = @orig_myisam_sort_buffer_size; +DROP TABLE t1; + +# End of 4.1 tests |