mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
5b05d360b0
Streamlined how we increase the size of our test table. The new method shows run time decreased by ~60%. This is not a guarantee that we will not see test timeouts (the random failures noted in the bug), but it should significantly reduce the chances of this occurring.
49 lines
1.3 KiB
Text
49 lines
1.3 KiB
Text
# 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
|
|
#
|
|
|
|
--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;
|
|
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;
|
|
}
|
|
|
|
# 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
|