Description:
Receiving an incorrect key file error for a temporary table:
Incorrect key file for table '/<vardir>/tmp/#sql_5a62_0.MYI'; try to repair it
This is occurring for both 5.1 and 6.0 and occurs consistently - the same RQG command line will produce this error every time.
Still trying to produce an exact MTR test case as well as researching what (if any) optimizer variables affect this. It should be noted that I did not run into this bug when testing other optimizer_join_cache_level values (0-8), but I feel this needs to be re-verified.
Failing query:
SELECT table1 . `col_varchar_1024_utf8_key` AS field1,
table1 . `col_varchar_1024_utf8_key` AS field2,
table1 . `col_date_key` AS field3
FROM p AS table1
LEFT JOIN j AS table2
LEFT OUTER JOIN k AS table3
ON table2 . `col_varchar_1024_latin1` > table3 . `col_varchar_10_utf8`
LEFT OUTER JOIN j AS table4
ON table2 . `col_varchar_10_latin1_key` > table4 . `col_varchar_1024_utf8_key`
RIGHT JOIN p AS table5
ON table2 . `col_varchar_10_utf8_key` > table5 . `col_varchar_1024_latin1_key`
ON table1 . `col_varchar_10_latin1` <= table4 . `col_varchar_10_latin1`
LEFT JOIN o AS table6
LEFT OUTER JOIN f AS table7
ON table6 . `col_varchar_10_utf8` > table7 . `col_varchar_10_utf8_key`
ON table3 . `pk` > table6 . `col_int_key`
LEFT JOIN m AS table8
ON table3 . `pk` < table8 . `col_int_key`
LEFT OUTER JOIN i AS table9
ON table6 . `pk` = table9 . `col_int_key`
WHERE table1 . `col_int_key` >= 0
AND table1 . `col_int_key` < ( 0 + 8 )
AND table1 . `col_int_key` IS NOT NULL
AND table1 . `col_int_key` < table5 . `pk`
AND table1 . `col_int_key` <> 2
OR table1 . `col_int_key` >= 0
AND table1 . `col_int_key` <= ( 0 + 5 )
AND table1 . `pk` BETWEEN 0 AND ( 0 + 8 )
AND table1 . `col_int_key` > 0
AND table1 . `col_int_key` <= ( 4 + 4 )
ORDER BY field1,
field2,
field3
LIMIT 100
How to repeat:
Both mysql directories were built with BUILD/compile-pentium-debug-max-no-ndb
RQG command line:
perl ./runall.pl --basedir1=/mysql-6.0 --vardir1=/6var2 --basedir2=/mysql51 --vardir2=/5var2 --mysqld1=--init-file=/jcl2.sql --mtr-build-thread=121 --threads=1 --queries=50000 --Validator=ResultsetComparatorSimplify --debug --grammar=conf/optimizer/optimizer_access_exp.yy --gendata=conf/optimizer/range_access.zz --seed=1270154068
jcl2.sql contents:
SET GLOBAL OPTIMIZER_SWITCH = 'index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,firstmatch=on,loosescan=on,materialization=on,semijoin=off,mrr=on,mrr_cost_based=off,index_condition_pushdown=on';
SET GLOBAL optimizer_join_cache_level = 2;