On Sun, Feb 18, 2001 at 02:07:51AM +0200, Michael Widenius wrote:
>
> This is basicly how concurrent_insert works and allows one thread to
> do insert while many threads are doing selects; All the other threads
> will just ignore all newly inserted rows.
>
> The code that does this is myisam/mi_rprev.c:
>
> while (info->lastpos > info->state->data_file_length)
> {
> /* Skip rows that are inserted by other threads since we got a lock */
> if ((error=_mi_search_next(info,share->keyinfo+inx,info->lastkey,
> info->lastkey_length,
> SEARCH_SMALLER,
> share->state.key_root[inx])))
> break;
> }
Okay, then the while loop should check for >= instead of > just
like in myisam/mi_rnext.c. Now it will skip all newly inserted
rows except the first newly inserted row.
Regards,
Fred.
--
Fred van Engen XO Communications B.V.
email: fred.van.engen@stripped Televisieweg 2
tel: +31 36 5462400 1322 AC Almere
fax: +31 36 5462424 The Netherlands