diff options
author | unknown <monty@mashka.mysql.fi> | 2003-01-16 20:47:46 +0200 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2003-01-16 20:47:46 +0200 |
commit | 90b2534f8f8fda105fdda2731273ba839b328da3 (patch) | |
tree | e1fdb60db4adfe4fafddb5d063b62fbb7cff6326 /myisam/mi_unique.c | |
parent | ef3091541e34703138e1c9f2fa5037faefaf20ba (diff) | |
parent | 3d00544c0f101cdadb52126245c534a62578ad91 (diff) | |
download | mariadb-git-90b2534f8f8fda105fdda2731273ba839b328da3.tar.gz |
Merge with 3.23
innobase/btr/btr0btr.c:
Auto merged
ltconfig:
Auto merged
innobase/include/btr0btr.h:
Auto merged
innobase/log/log0log.c:
Auto merged
libmysql/Makefile.shared:
Auto merged
man/isamlog.1:
Auto merged
man/mysql.1:
Auto merged
man/mysql_zap.1:
Auto merged
man/isamchk.1:
Auto merged
man/mysqlaccess.1:
Auto merged
man/mysqladmin.1:
Auto merged
man/mysqld_multi.1:
Auto merged
man/mysqld.1:
Auto merged
man/mysqld_safe.1:
Auto merged
man/mysqldump.1:
Auto merged
man/mysqlshow.1:
Auto merged
man/replace.1:
Auto merged
myisam/mi_unique.c:
Auto merged
scripts/mysqld_safe.sh:
Auto merged
sql/net_pkg.cc:
Auto merged
sql/sql_table.cc:
Auto merged
strings/Makefile.am:
Auto merged
man/perror.1:
Auto merged
Makefile.am:
merge with 3.23
client/mysqltest.c:
merge with 3.23
innobase/btr/btr0pcur.c:
merge with 3.23 (use local file)
innobase/row/row0purge.c:
merge with 3.23 (use local file)
scripts/mysql_fix_privilege_tables.sh:
Merge with 3.23 (Apply debian patches)
sql/ha_innodb.cc:
merge with 3.23 (use local file)
sql/mysqld.cc:
Merge with 3.23 (use local file)
sql/net_serv.cc:
Merge with 3.23 (use local file)
sql/sql_db.cc:
Merge with 3.23 (use local file)
Diffstat (limited to 'myisam/mi_unique.c')
-rw-r--r-- | myisam/mi_unique.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/myisam/mi_unique.c b/myisam/mi_unique.c index b373693e6e0..ddba40214e7 100644 --- a/myisam/mi_unique.c +++ b/myisam/mi_unique.c @@ -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) |