diff options
author | unknown <monty@donna.mysql.com> | 2001-01-27 01:21:50 +0200 |
---|---|---|
committer | unknown <monty@donna.mysql.com> | 2001-01-27 01:21:50 +0200 |
commit | 298ba0d39d6d38d5be860a3ad8a55b469b67e7d8 (patch) | |
tree | 30a2a855d3403d31304871d2d8aaf1a139e6393a /myisammrg | |
parent | 87b0956a5f832a1ce068527a49e5a7e6021ce39d (diff) | |
parent | 52a4c5a10063f2e7b06a32add3b87ba0b0ae2b45 (diff) | |
download | mariadb-git-298ba0d39d6d38d5be860a3ad8a55b469b67e7d8.tar.gz |
Merge work:/my/mysql into donna.mysql.com:/home/my/bk/mysql
Docs/manual.texi:
Auto merged
sql/mysqld.cc:
Auto merged
Diffstat (limited to 'myisammrg')
-rw-r--r-- | myisammrg/myrg_open.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/myisammrg/myrg_open.c b/myisammrg/myrg_open.c index f0a2b4348f6..f73339f63c8 100644 --- a/myisammrg/myrg_open.c +++ b/myisammrg/myrg_open.c @@ -36,11 +36,12 @@ int mode; int handle_locking; { int save_errno,i,errpos; - uint files,dir_length; + uint files,dir_length,length; ulonglong file_offset; char name_buff[FN_REFLEN*2],buff[FN_REFLEN],*end; MYRG_INFO info,*m_info; - FILE *file; + File fd; + IO_CACHE file; MI_INFO *isam,*last_isam; DBUG_ENTER("myrg_open"); @@ -49,15 +50,18 @@ int handle_locking; isam=0; errpos=files=0; bzero((gptr) &info,sizeof(info)); - if (!(file=my_fopen(fn_format(name_buff,name,"",MYRG_NAME_EXT,4), - O_RDONLY | O_SHARE,MYF(0)))) + bzero((char*) &file,sizeof(file)); + if ((fd=my_open(fn_format(name_buff,name,"",MYRG_NAME_EXT,4), + O_RDONLY | O_SHARE,MYF(0))) < 0 || + init_io_cache(&file, fd, IO_SIZE, READ_CACHE, 0, 0, + MYF(MY_WME | MY_NABP))) goto err; errpos=1; dir_length=dirname_part(name_buff,name); info.reclength=0; - while (fgets(buff,FN_REFLEN-1,file)) + while ((length=my_b_gets(&file,buff,FN_REFLEN-1))) { - if ((end=strend(buff))[-1] == '\n') + if ((end=buff+length)[-1] == '\n') end[-1]='\0'; if (buff[0] && buff[0] != '#') /* Skipp empty lines and comments */ { @@ -118,7 +122,8 @@ int handle_locking; m_info->end_table=m_info->open_tables+files; m_info->last_used_table=m_info->open_tables; - VOID(my_fclose(file,MYF(0))); + VOID(my_close(fd,MYF(0))); + end_io_cache(&file); m_info->open_list.data=(void*) m_info; pthread_mutex_lock(&THR_LOCK_open); myrg_open_list=list_add(myrg_open_list,&m_info->open_list); @@ -132,7 +137,8 @@ err: my_free((char*) m_info,MYF(0)); /* Fall through */ case 1: - VOID(my_fclose(file,MYF(0))); + VOID(my_close(fd,MYF(0))); + end_io_cache(&file); for (i=files ; i-- > 0 ; ) { isam=last_isam; |