summaryrefslogtreecommitdiff
path: root/myisammrg
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2001-01-27 01:21:50 +0200
committerunknown <monty@donna.mysql.com>2001-01-27 01:21:50 +0200
commit298ba0d39d6d38d5be860a3ad8a55b469b67e7d8 (patch)
tree30a2a855d3403d31304871d2d8aaf1a139e6393a /myisammrg
parent87b0956a5f832a1ce068527a49e5a7e6021ce39d (diff)
parent52a4c5a10063f2e7b06a32add3b87ba0b0ae2b45 (diff)
downloadmariadb-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.c22
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;