diff options
author | unknown <serg@serg.mylan> | 2004-04-02 20:42:35 +0200 |
---|---|---|
committer | unknown <serg@serg.mylan> | 2004-04-02 20:42:35 +0200 |
commit | a66fe8dcd5e7106df8e6ce01b1c2fc10c3990b2c (patch) | |
tree | dfc8d7c560515b2d009e6d8800028290852daaba /myisam | |
parent | 7c27065c3e79ad2e39fa71ead9121296008faf10 (diff) | |
download | mariadb-git-a66fe8dcd5e7106df8e6ce01b1c2fc10c3990b2c.tar.gz |
cleanup of ha_myisam::deactivate_non_unique_index() and Co.
Diffstat (limited to 'myisam')
-rw-r--r-- | myisam/mi_check.c | 20 | ||||
-rw-r--r-- | myisam/mi_write.c | 4 | ||||
-rw-r--r-- | myisam/myisamdef.h | 1 |
3 files changed, 13 insertions, 12 deletions
diff --git a/myisam/mi_check.c b/myisam/mi_check.c index 433724a21e6..d25ffeedff0 100644 --- a/myisam/mi_check.c +++ b/myisam/mi_check.c @@ -3966,18 +3966,18 @@ static my_bool mi_too_big_key_for_sort(MI_KEYDEF *key, ha_rows rows) void mi_disable_non_unique_index(MI_INFO *info, ha_rows rows) { MYISAM_SHARE *share=info->s; - uint i; - if (!info->state->records) /* Don't do this if old rows */ + MI_KEYDEF *key=share->keyinfo; + uint i; + + DBUG_ASSERT(info->state->records == 0 && + (!rows || rows >= MI_MIN_ROWS_TO_DISABLE_INDEXES)); + for (i=0 ; i < share->base.keys ; i++,key++) { - MI_KEYDEF *key=share->keyinfo; - for (i=0 ; i < share->base.keys ; i++,key++) + if (!(key->flag & (HA_NOSAME | HA_SPATIAL | HA_AUTO_KEY)) && + ! mi_too_big_key_for_sort(key,rows) && info->s->base.auto_key != i+1) { - if (!(key->flag & (HA_NOSAME | HA_SPATIAL | HA_AUTO_KEY)) && - ! mi_too_big_key_for_sort(key,rows) && info->s->base.auto_key != i+1) - { - share->state.key_map&= ~ ((ulonglong) 1 << i); - info->update|= HA_STATE_CHANGED; - } + share->state.key_map&= ~ ((ulonglong) 1 << i); + info->update|= HA_STATE_CHANGED; } } } diff --git a/myisam/mi_write.c b/myisam/mi_write.c index 382fb1156cb..59819b40f96 100644 --- a/myisam/mi_write.c +++ b/myisam/mi_write.c @@ -916,8 +916,8 @@ int mi_init_bulk_insert(MI_INFO *info, ulong cache_size, ha_rows rows) DBUG_ENTER("_mi_init_bulk_insert"); DBUG_PRINT("enter",("cache_size: %lu", cache_size)); - if (info->bulk_insert || (rows && rows < MI_MIN_ROWS_TO_USE_BULK_INSERT)) - DBUG_RETURN(0); + DBUG_ASSERT(!info->bulk_insert && + (!rows || rows >= MI_MIN_ROWS_TO_USE_BULK_INSERT)); for (i=total_keylength=num_keys=0 ; i < share->base.keys ; i++) { diff --git a/myisam/myisamdef.h b/myisam/myisamdef.h index f84d1c573d0..ecef9953202 100644 --- a/myisam/myisamdef.h +++ b/myisam/myisamdef.h @@ -416,6 +416,7 @@ typedef struct st_mi_sort_param #define MI_MIN_SIZE_BULK_INSERT_TREE 16384 /* this is per key */ #define MI_MIN_ROWS_TO_USE_BULK_INSERT 100 +#define MI_MIN_ROWS_TO_DISABLE_INDEXES 100 /* The UNIQUE check is done with a hashed long key */ |