Merge with 4.0.9

BitKeeper/etc/ignore:
  auto-union
client/mysqltest.c:
  Auto merged
configure.in:
  Auto merged
BitKeeper/deleted/.del-mutex.h~d3ae7a2977a68137:
  Auto merged
BitKeeper/deleted/.del-mutex.m4~a13383cde18a64e1:
  Auto merged
innobase/btr/btr0cur.c:
  Auto merged
innobase/btr/btr0pcur.c:
  Auto merged
innobase/log/log0log.c:
  Auto merged
innobase/srv/srv0srv.c:
  Auto merged
innobase/trx/trx0trx.c:
  Auto merged
myisam/mi_create.c:
  Auto merged
myisam/mi_unique.c:
  Auto merged
myisam/myisamchk.c:
  Auto merged
mysql-test/mysql-test-run.sh:
  Auto merged
mysql-test/r/group_by.result:
  Auto merged
mysql-test/r/merge.result:
  Auto merged
mysql-test/r/null.result:
  Auto merged
mysql-test/t/group_by.test:
  Auto merged
mysql-test/t/merge.test:
  Auto merged
mysql-test/t/null.test:
  Auto merged
scripts/mysql_fix_privilege_tables.sh:
  Auto merged
sql/field_conv.cc:
  Auto merged
sql/ha_myisammrg.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/net_serv.cc:
  Auto merged
sql/opt_sum.cc:
  Auto merged
sql/protocol.cc:
  Auto merged
sql/sql_db.cc:
  Auto merged
sql/sql_load.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
strings/Makefile.am:
  Auto merged
libmysql/Makefile.shared:
  merge
libmysql/libmysql.def:
  merge
sql/ha_innodb.cc:
  merge
sql/item_cmpfunc.cc:
  merge
sql/log_event.cc:
  merge
sql/sql_handler.cc:
  merge
This commit is contained in:
unknown 2003-01-18 03:13:37 +02:00
commit 76c8b9bece
59 changed files with 549 additions and 153 deletions

View file

@ -24,7 +24,7 @@ my_bool mi_check_unique(MI_INFO *info, MI_UNIQUEDEF *def, byte *record,
{
my_off_t lastpos=info->lastpos;
MI_KEYDEF *key= &info->s->keyinfo[def->key];
uchar *key_buff=info->lastkey+info->s->base.max_key_length;
uchar *key_buff=info->lastkey2;
DBUG_ENTER("mi_check_unique");
mi_unique_store(record+key->seg->start, unique_hash);
@ -80,7 +80,16 @@ ha_checksum mi_unique_hash(MI_UNIQUEDEF *def, const byte *record)
if (keyseg->null_bit)
{
if (record[keyseg->null_pos] & keyseg->null_bit)
{
/*
Change crc in a way different from an empty string or 0.
(This is an optimisation; The code will work even if this isn't
done)
*/
crc=((crc << 8) + 511+
(crc >> (8*sizeof(ha_checksum)-8)));
continue;
}
}
pos= record+keyseg->start;
if (keyseg->flag & HA_VAR_LENGTH)