List:Internals« Previous MessageNext Message »
From:Fred van Engen Date:February 18 2001 12:44am
Subject:Re: "DELETE FROM mergetable" clears merge definition
View as plain text  
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
Thread
Re: "DELETE FROM mergetable" clears merge definitionMichael Widenius18 Feb
  • Re: "DELETE FROM mergetable" clears merge definitionFred van Engen18 Feb
    • Re: "DELETE FROM mergetable" clears merge definitionMichael Widenius18 Feb
      • Re: "DELETE FROM mergetable" clears merge definitionFred van Engen18 Feb
        • Re: "DELETE FROM mergetable" clears merge definitionMichael Widenius21 Feb