diff options
author | unknown <monty@mashka.mysql.fi> | 2003-01-18 03:13:37 +0200 |
---|---|---|
committer | unknown <monty@mashka.mysql.fi> | 2003-01-18 03:13:37 +0200 |
commit | 76c8b9becec0438562882f591529190564a2d82f (patch) | |
tree | b24bce166fd5affbcc506bbc7d70c2c7ef00f561 /myisam | |
parent | 0ee64eb3d2daccd29478832ef9ce86f0ea086e9d (diff) | |
parent | aec8aeaab869e8553123ad1aefd8a5ab2c5f3ea7 (diff) | |
download | mariadb-git-76c8b9becec0438562882f591529190564a2d82f.tar.gz |
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
Diffstat (limited to 'myisam')
-rw-r--r-- | myisam/mi_create.c | 2 | ||||
-rw-r--r-- | myisam/mi_unique.c | 11 | ||||
-rw-r--r-- | myisam/myisamchk.c | 6 |
3 files changed, 14 insertions, 5 deletions
diff --git a/myisam/mi_create.c b/myisam/mi_create.c index 8087d17904a..8b33930bcf3 100644 --- a/myisam/mi_create.c +++ b/myisam/mi_create.c @@ -230,7 +230,7 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, if (uniques) { max_key_block_length= myisam_block_size; - max_key_length= MI_UNIQUE_HASH_LENGTH; + max_key_length= MI_UNIQUE_HASH_LENGTH + pointer; } for (i=0, keydef=keydefs ; i < keys ; i++ , keydef++) diff --git a/myisam/mi_unique.c b/myisam/mi_unique.c index 682f946eba7..3eb25aefe0e 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) diff --git a/myisam/myisamchk.c b/myisam/myisamchk.c index 281cb90d9bf..1b180a728ba 100644 --- a/myisam/myisamchk.c +++ b/myisam/myisamchk.c @@ -130,7 +130,7 @@ int main(int argc, char **argv) char buff[22],buff2[22]; if (!(check_param.testflag & T_SILENT) || check_param.testflag & T_INFO) puts("\n---------\n"); - printf("\nTotal of all %d ISAM-files:\nData records: %9s Deleted blocks: %9s\n",check_param.total_files,llstr(check_param.total_records,buff), + printf("\nTotal of all %d MyISAM-files:\nData records: %9s Deleted blocks: %9s\n",check_param.total_files,llstr(check_param.total_records,buff), llstr(check_param.total_deleted,buff2)); } free_defaults(default_argv); @@ -330,7 +330,7 @@ static void usage(void) print_version(); puts("By Monty, for your professional use"); puts("This software comes with NO WARRANTY: see the PUBLIC for details.\n"); - puts("Description, check and repair of ISAM tables."); + puts("Description, check and repair of MyISAM tables."); puts("Used without options all tables on the command will be checked for errors"); printf("Usage: %s [OPTIONS] tables[.MYI]\n", my_progname); puts("\nGlobal options:\n\ @@ -1693,7 +1693,7 @@ void mi_check_print_error(MI_CHECK *param, const char *fmt,...) if (!param->warning_printed && !param->error_printed) { if (param->testflag & T_SILENT) - fprintf(stderr,"%s: ISAM file %s\n",my_progname,param->isam_file_name); + fprintf(stderr,"%s: MyISAM file %s\n",my_progname,param->isam_file_name); param->out_flag|= O_DATA_LOST; } param->error_printed|=1; |