On Thu, Sep 06, 2001 at 07:50:02AM +0300, monty@stripped wrote:
> Benjamin> "select * from t1" shows one row missing and after the flush table, it
> Benjamin> magically appears. A blind guess would be some problem with obsolete
> Benjamin> caches, but I don't have a clue where to start to look.
> It looks like that when you are accessing the t2 table after the ALTER
> TABLE MySQL is using it's own MyISAM file descriptor to t1.
> (This is something that should never happen).
> It could be that when MySQL marks the handler file as
> 'old'-cant-be-used anymore it also marks the 't1' file as such, but
> doesn't close it properly.
> If you can create a patch for what you have done I could investigate
> this on the weekend.
I am sorry, I did not manage to get it ready in time before the
weekend. :-( I hope that I will be able to do that tomorrow.
> If you want to do this yourself; Run mysqld with --debug and check in
> the trace log the file numbers that are used within the MyISAM
I meanwhile found out, that it depends on the key. If no key is used
to resolve the query, it works fine. In my original example, the key
spans all rows and therefore it uses the index to read them. If I
leave away the key or the key doesn't span all selected rows, the
problem is not visible.
Benjamin, hoping to have more time tomorrow.