Hi!
>>>>> "Yuri" == Yuri Dario <mc6530@stripped> writes:
Yuri> Hi Monty,
>> You are right; We added that even if we just check the table, MySQL
>> will write some status to the header file; We don't need to protect
>> this with a write lock, as it's not important if we loose this
>> information.
>> The fix is probably to lock tables with write locks when doing CHECK
>> TABLE and running under OS2.
Yuri> this sounds not trivial for me: could you tell me where to work?
In sql/sql_table.cc:
int mysql_analyze_table(THD* thd, TABLE_LIST* tables, HA_CHECK_OPT* check_opt)
{
DBUG_ENTER("mysql_analyze_table");
DBUG_RETURN(mysql_admin_table(thd, tables, check_opt,
"analyze",TL_READ_NO_INSERT, 1,0,0,
&handler::analyze));
}
int mysql_check_table(THD* thd, TABLE_LIST* tables,HA_CHECK_OPT* check_opt)
{
DBUG_ENTER("mysql_check_table");
DBUG_RETURN(mysql_admin_table(thd, tables, check_opt,
"check",
TL_READ_NO_INSERT, 0, 0, HA_OPEN_FOR_REPAIR,
&handler::check));
}
For OS/2, you have to change TL_READ_NO_INSERT to TL_WRITE if you want
to do this...
Regards,
Monty