List:Internals« Previous MessageNext Message »
From:Michael Widenius Date:February 18 2001 10:03am
Subject:Re: "DELETE FROM mergetable" clears merge definition
View as plain text  
Hi!

>>>>> "Fred" == Fred van Engen <fred.van.engen@stripped> writes:

Fred> 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;
>> }                                                                           

Fred> Okay, then the while loop should check for >= instead of > just
Fred> like in myisam/mi_rnext.c. Now it will skip all newly inserted
Fred> rows except the first newly inserted row.

Ouch, you are right. Thanks for spotting this!

Regards,
Monty
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