108 lines
2.3 KiB
Plaintext
108 lines
2.3 KiB
Plaintext
# The include statement below is a temp one for tests that are yet to
|
|
#be ported to run with InnoDB,
|
|
#but needs to be kept for tests that would need MyISAM in future.
|
|
--source include/force_myisam_default.inc
|
|
--source include/have_myisam.inc
|
|
|
|
# Tests for eq_range_index_dive_limit variable:
|
|
# test that index dives are not done when index
|
|
# statistics is requested
|
|
|
|
--source include/have_debug.inc
|
|
|
|
SET eq_range_index_dive_limit=default;
|
|
SELECT @@eq_range_index_dive_limit;
|
|
|
|
CREATE TABLE t1
|
|
(
|
|
/* Field names reflect value(rowid) distribution, st=STairs, swt= SaWTooth */
|
|
st_a int,
|
|
swt1a int,
|
|
swt2a int,
|
|
|
|
st_b int,
|
|
swt1b int,
|
|
swt2b int,
|
|
|
|
key sta_swt12a(st_a,swt1a,swt2a),
|
|
key sta_swt1a(st_a,swt1a),
|
|
key sta_swt2a(st_a,swt2a),
|
|
key sta_swt21a(st_a,swt2a,swt1a),
|
|
|
|
key st_a(st_a),
|
|
key stb_swt1a_2b(st_b,swt1b,swt2a),
|
|
key stb_swt1b(st_b,swt1b),
|
|
key st_b(st_b)
|
|
) ;
|
|
|
|
ALTER TABLE t1 DISABLE KEYS;
|
|
|
|
--disable_query_log
|
|
--echo #
|
|
--echo # Printing of many insert into t1 disabled.
|
|
--echo #
|
|
let $1=3;
|
|
while ($1)
|
|
{
|
|
let $2=3;
|
|
while ($2)
|
|
{
|
|
let $3=3;
|
|
while ($3)
|
|
{
|
|
let $equal_records=30;
|
|
while ($equal_records)
|
|
{
|
|
eval insert into t1 select $1, $2, $3, $1 ,$2, $3;
|
|
dec $equal_records;
|
|
}
|
|
dec $3;
|
|
}
|
|
dec $2;
|
|
}
|
|
dec $1;
|
|
}
|
|
--enable_query_log
|
|
ALTER TABLE t1 ENABLE KEYS;
|
|
ANALYZE TABLE t1;
|
|
|
|
--echo #
|
|
--echo # Run index_merge queries two times: 1) with index dives
|
|
--echo # 2) with index statistics
|
|
--echo #
|
|
let $iterations=2;
|
|
while ($iterations)
|
|
{
|
|
dec $iterations;
|
|
|
|
--echo
|
|
explain
|
|
select * from t1
|
|
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1 limit 5;
|
|
|
|
select * from t1
|
|
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1 limit 5;
|
|
|
|
--echo
|
|
explain
|
|
select * from t1
|
|
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 limit 5;
|
|
|
|
select * from t1
|
|
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 limit 5;
|
|
|
|
--echo
|
|
explain
|
|
select * from t1
|
|
where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1 limit 5;
|
|
|
|
select * from t1
|
|
where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1 limit 5;
|
|
|
|
--echo
|
|
SET eq_range_index_dive_limit=1;
|
|
SET SESSION DEBUG="+d,crash_records_in_range";
|
|
}
|
|
|
|
DROP TABLE t1;
|