Browse Source

Merge anubis.xiphis.org:/usr/home/antony/work/mysql-4.1-engines

into  anubis.xiphis.org:/usr/home/antony/work/mysql-4.1-engines.merge
pull/374/head
unknown 19 years ago
parent
commit
46943ab628
  1. 19
      mysys/hash.c

19
mysys/hash.c

@ -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)

Loading…
Cancel
Save