diff options
author | unknown <svoj@april.(none)> | 2006-09-29 00:23:43 +0500 |
---|---|---|
committer | unknown <svoj@april.(none)> | 2006-09-29 00:23:43 +0500 |
commit | 70c6f7d2276d34b5890f074a22b6a9f3a7c9579d (patch) | |
tree | 6ddce11f9510e4862cf11cfc2d279b535e208f76 /storage | |
parent | 0d7fdc9ee306a2aadfa9b676ce421ead182f90dd (diff) | |
parent | 59a7f1ab5fe51755413eb75335a8bfd82975acb1 (diff) | |
download | mariadb-git-70c6f7d2276d34b5890f074a22b6a9f3a7c9579d.tar.gz |
Merge mysql.com:/home/svoj/devel/mysql/BUG21617/mysql-5.0-engines
into mysql.com:/home/svoj/devel/mysql/BUG21617/mysql-5.1-engines
mysql-test/r/merge.result:
Auto merged
mysql-test/t/merge.test:
Auto merged
mysys/queues.c:
Auto merged
storage/myisammrg/myrg_open.c:
Auto merged
storage/myisammrg/myrg_queue.c:
Auto merged
Diffstat (limited to 'storage')
-rw-r--r-- | storage/myisammrg/myrg_open.c | 7 | ||||
-rw-r--r-- | storage/myisammrg/myrg_queue.c | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/storage/myisammrg/myrg_open.c b/storage/myisammrg/myrg_open.c index 862201ed841..dafb3246cbf 100644 --- a/storage/myisammrg/myrg_open.c +++ b/storage/myisammrg/myrg_open.c @@ -33,7 +33,7 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking) { int save_errno,errpos=0; - uint files=0,i,dir_length,length,key_parts; + uint files= 0, i, dir_length, length, key_parts, min_keys= 0; ulonglong file_offset=0; char name_buff[FN_REFLEN*2],buff[FN_REFLEN],*end; MYRG_INFO *m_info=0; @@ -110,6 +110,7 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking) files= 0; } m_info->reclength=isam->s->base.reclength; + min_keys= isam->s->base.keys; errpos=3; } m_info->open_tables[files].table= isam; @@ -125,6 +126,8 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking) m_info->records+= isam->state->records; m_info->del+= isam->state->del; m_info->data_file_length+= isam->state->data_file_length; + if (min_keys > isam->s->base.keys) + min_keys= isam->s->base.keys; for (i=0; i < key_parts; i++) m_info->rec_per_key_part[i]+= (isam->s->state.rec_per_key_part[i] / m_info->tables); @@ -142,7 +145,7 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking) my_errno=HA_ERR_RECORD_FILE_FULL; goto err; } - m_info->keys= files ? isam->s->base.keys : 0; + m_info->keys= min_keys; bzero((char*) &m_info->by_key,sizeof(m_info->by_key)); /* this works ok if the table list is empty */ diff --git a/storage/myisammrg/myrg_queue.c b/storage/myisammrg/myrg_queue.c index 2e600a526c0..74fdddc7748 100644 --- a/storage/myisammrg/myrg_queue.c +++ b/storage/myisammrg/myrg_queue.c @@ -65,6 +65,8 @@ int _myrg_init_queue(MYRG_INFO *info,int inx,enum ha_rkey_function search_flag) error=my_errno; } } + else + my_errno= error= HA_ERR_WRONG_INDEX; return error; } |