Commit 781a0493 authored by tsmith@sita.local's avatar tsmith@sita.local
Browse files

Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-4.1-engines

into  sita.local:/Users/tsmith/m/bk/maint/41
parents 8c8883ae bab42982
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -572,6 +572,25 @@ my_bool hash_update(HASH *hash,byte *record,byte *old_key,uint old_key_length)
    previous->next=pos->next;		/* unlink pos */

  /* Move data to correct position */
  if (new_index == empty)
  {
    /*
      At this point record is unlinked from the old chain, thus it holds
      random position. By the chance this position is equal to position
      for the first element in the new chain. That means updated record
      is the only record in the new chain.
    */
    if (empty != idx)
    {
      /*
        Record was moved while unlinking it from the old chain.
        Copy data to a new position.
      */
      data[empty]= org_link;
    }
    data[empty].next= NO_RECORD;
    DBUG_RETURN(0);
  }
  pos=data+new_index;
  new_pos_index=hash_rec_mask(hash,pos,blength,records);
  if (new_index != new_pos_index)