On Sat, Jun 15, 2013 at 7:27 AM, Michael Widenius <monty@askmonty.org> wrote:

MARK> http://bazaar.launchpad.net/~mysqlatfacebook/mysqlatfacebook/5.1/revision/3652

MARK> Port tmp_table_max_file_size option from the Google patch to limit max size of
MARK> on-disk temp tables.  This adds the my.cnf option and session variable
MARK> "tmp_table_max_file_size" to limit the max size of an on-disk (MyISAM)
MARK> temp table.
MARK> The error ER_TMP_TABLE_MAX_FILE_SIZE_EXCEEDED is raised when the limit
MARK> is exceeded.

This code sets te same size for implicate and internal tmp tables.

Mark, do you think we should have both variables availble?
(It's similar amount of work to add two variables instead of one). 

I looked at the above patch (thanks for the link) and most of if looks
good, but there is a few ways we can improve it when we apply it.

I am sure my patch can be improved. It changes code that I don't know much about. I think it is better to use separate variables for implicit vs explicit temp tables. But the behavior that is most needed is 1) better behavior when the filesystem is full during temp table writes and 2) maybe a global limit on the amount of disk space that can be used by temp tables. Per-session limits might not prevent concurrent sessions from causing a problem.

--
Mark Callaghan
mdcallag@gmail.com