diff options
author | unknown <serg@sergbook.mysql.com> | 2002-07-25 12:30:41 +0200 |
---|---|---|
committer | unknown <serg@sergbook.mysql.com> | 2002-07-25 12:30:41 +0200 |
commit | a3800d6d9b069c9f6e5c903192dbe1284c5af1ba (patch) | |
tree | 710ec910bbec23f6c109cf877fa1f6ce7f4e80fd /myisam | |
parent | 9eef017c5750b26b75252a2ac0679f761404d136 (diff) | |
download | mariadb-git-a3800d6d9b069c9f6e5c903192dbe1284c5af1ba.tar.gz |
bugfix: uniques did not contributed to MYI tot_length estimation, which resulted in "Index file full" error on huge SELECT DISTINCT's
Diffstat (limited to 'myisam')
-rw-r--r-- | myisam/mi_create.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/myisam/mi_create.c b/myisam/mi_create.c index 7abf274d621..6941db158e1 100644 --- a/myisam/mi_create.c +++ b/myisam/mi_create.c @@ -392,6 +392,9 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, uniquedef->key=keys+i; unique_key_parts+=uniquedef->keysegs; share.state.key_root[keys+i]= HA_OFFSET_ERROR; + tot_length+= (max_rows/(ulong) (((uint) myisam_block_size-5)/ + ((MI_UNIQUE_HASH_LENGTH + pointer)*2)))* + (ulong) myisam_block_size; } keys+=uniques; /* Each unique has 1 key */ key_segs+=uniques; /* Each unique has 1 key seg */ |