summaryrefslogtreecommitdiff
path: root/merge/mrg_open.c
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-12-31 03:47:56 +0200
committerunknown <monty@mysql.com>2004-12-31 03:47:56 +0200
commit45199f545cafb15687b4aae4d127d552a8dcf27a (patch)
treedd3c89af5e01f80d9172adc65e8df542cd91cb5b /merge/mrg_open.c
parent12a215b0833d9aa688ba16fe56eb3411a83e7d4f (diff)
downloadmariadb-git-45199f545cafb15687b4aae4d127d552a8dcf27a.tar.gz
After merge fixes
Cleanup of mi_print_error() handling Deleted 'merge' directory BitKeeper/deleted/.del-mrg_close.c~1fa9230422daa62a: Delete: merge/mrg_close.c BitKeeper/deleted/.del-mrg_create.c~b747c8ec2b801f6: Delete: merge/mrg_create.c BitKeeper/deleted/.del-mrg_delete.c~38b4156885bb4537: Delete: merge/mrg_delete.c BitKeeper/deleted/.del-mrg_extra.c~7eb6181e1761907e: Delete: merge/mrg_extra.c BitKeeper/deleted/.del-mrg_info.c~37728e7238cc5a11: Delete: merge/mrg_info.c BitKeeper/deleted/.del-mrg_locking.c~112756a2d581e1d0: Delete: merge/mrg_locking.c BitKeeper/deleted/.del-mrg_open.c~6e1d5c8bfa62a519: Delete: merge/mrg_open.c BitKeeper/deleted/.del-mrg_panic.c~e204e43cd6d55406: Delete: merge/mrg_panic.c BitKeeper/deleted/.del-mrg_rrnd.c~6087c3dd7ecb77: Delete: merge/mrg_rrnd.c BitKeeper/deleted/.del-mrg_rsame.c~3e8ed4be2a0952b1: Delete: merge/mrg_rsame.c BitKeeper/deleted/.del-mrg_static.c~75a4b78a165dbd0: Delete: merge/mrg_static.c BitKeeper/deleted/.del-mrg_update.c~4110a4f1fbf1ab45: Delete: merge/mrg_update.c BitKeeper/deleted/.del-Makefile.am~41238af048e60515: Delete: merge/Makefile.am BitKeeper/deleted/.del-make-ccc~4f1acbfc127e25d5: Delete: merge/make-ccc BitKeeper/deleted/.del-mrg_def.h~a10557d12a87ef1c: Delete: merge/mrg_def.h BitKeeper/deleted/.del-.cvsignore~2f287ba794db3da7: Delete: merge/.cvsignore include/myisam.h: Added 'share' to st_mi_keydef' to not have to pass 'st_myisam_info' to functions myisam/ft_static.c: Removed compiler warning myisam/mi_delete.c: Cleanup of mi_print_error() handling Break if get_key() return 0 Don't test for HA_ERR_CRASHED; Print errors when my_errno is set myisam/mi_extra.c: Cleanup of mi_print_error() handling myisam/mi_key.c: Cleanup of mi_print_error() handling myisam/mi_keycache.c: Cleanup of mi_print_error() handling myisam/mi_locking.c: Cleanup of mi_print_error() handling myisam/mi_open.c: Added 'my_isam_share' to MI_KEYDEF myisam/mi_page.c: Cleanup of mi_print_error() handling myisam/mi_range.c: get_key() calls mi_print_error() if needed myisam/mi_rkey.c: Cleanup of mi_print_error() handling myisam/mi_search.c: Cleanup of mi_print_error() handling Break if get_key() return 0 Don't test for HA_ERR_CRASHED; Print errors when my_errno is set myisam/mi_update.c: Cleanup of mi_print_error() handling myisam/mi_write.c: Cleanup of mi_print_error() handling Break if get_key() return 0 Don't test for HA_ERR_CRASHED; Print errors when my_errno is set myisam/myisamdef.h: Cleanup of mi_print_error() handling mysql-test/r/grant.result: Update results after merge mysql-test/r/timezone2.result: Update results after merge mysql-test/t/grant.test: New error numbers mysql-test/t/timezone2.test: New error numbers sql/item_func.cc: Remove duplicate include file sql/sql_acl.cc: Remove warnings from valgrind sql/tztime.cc: Print wrong timezone names to log
Diffstat (limited to 'merge/mrg_open.c')
-rw-r--r--merge/mrg_open.c150
1 files changed, 0 insertions, 150 deletions
diff --git a/merge/mrg_open.c b/merge/mrg_open.c
deleted file mode 100644
index 6bf75392131..00000000000
--- a/merge/mrg_open.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* open a MERGE-database */
-
-#include "mrg_def.h"
-#include <stddef.h>
-#include <errno.h>
-#ifdef VMS
-#include "static.c"
-#endif
-
-/* open a MERGE-database.
-
- if handle_locking is 0 then exit with error if some database is locked
- if handle_locking is 1 then wait if database is locked
-*/
-
-
-MRG_INFO *mrg_open(
-const char *name,
-int mode,
-int handle_locking)
-{
- int save_errno,i,errpos;
- uint files,dir_length,length, options;
- ulonglong file_offset;
- char name_buff[FN_REFLEN*2],buff[FN_REFLEN],*end;
- MRG_INFO info,*m_info;
- File fd;
- IO_CACHE file;
- N_INFO *isam,*last_isam;
- DBUG_ENTER("mrg_open");
-
- LINT_INIT(last_isam);
- isam=0;
- errpos=files=0;
- bzero((gptr) &info,sizeof(info));
- bzero((char*) &file,sizeof(file));
- if ((fd=my_open(fn_format(name_buff,name,"",MRG_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 ((length=my_b_gets(&file,buff,FN_REFLEN-1)))
- {
- if ((end=buff+length)[-1] == '\n')
- end[-1]='\0';
- if (buff[0] && buff[0] != '#') /* Skip empty lines and comments */
- {
- last_isam=isam;
- if (!test_if_hard_path(buff))
- {
- VOID(strmake(name_buff+dir_length,buff,
- sizeof(name_buff)-1-dir_length));
- VOID(cleanup_dirname(buff,name_buff));
- }
- if (!(isam=nisam_open(buff,mode,test(handle_locking))))
- goto err;
- files++;
- }
- last_isam=isam;
- if (info.reclength && info.reclength != isam->s->base.reclength)
- {
- my_errno=HA_ERR_WRONG_IN_RECORD;
- goto err;
- }
- info.reclength=isam->s->base.reclength;
- }
- if (!(m_info= (MRG_INFO*) my_malloc(sizeof(MRG_INFO)+files*sizeof(MRG_TABLE),
- MYF(MY_WME))))
- goto err;
- *m_info=info;
- m_info->open_tables=(MRG_TABLE *) (m_info+1);
- m_info->tables=files;
-
- options= (uint) ~0;
- for (i=files ; i-- > 0 ; )
- {
- m_info->open_tables[i].table=isam;
- m_info->options|=isam->s->base.options;
- options&=isam->s->base.options;
- m_info->records+=isam->s->state.records;
- m_info->del+=isam->s->state.del;
- m_info->data_file_length=isam->s->state.data_file_length;
- if (i)
- isam=(N_INFO*) (isam->open_list.next->data);
- }
- /* Don't force readonly if not all tables are readonly */
- if (! (options & (HA_OPTION_COMPRESS_RECORD | HA_OPTION_READ_ONLY_DATA)))
- m_info->options&= ~(HA_OPTION_COMPRESS_RECORD | HA_OPTION_READ_ONLY_DATA);
-
- /* Fix fileinfo for easyer debugging (actually set by rrnd) */
- file_offset=0;
- for (i=0 ; (uint) i < files ; i++)
- {
- m_info->open_tables[i].file_offset=(my_off_t) file_offset;
- file_offset+=m_info->open_tables[i].table->s->state.data_file_length;
- }
- if (sizeof(my_off_t) == 4 && file_offset > (ulonglong) (ulong) ~0L)
- {
- my_errno=HA_ERR_RECORD_FILE_FULL;
- my_free((char*) m_info,MYF(0));
- goto err;
- }
-
- m_info->end_table=m_info->open_tables+files;
- m_info->last_used_table=m_info->open_tables;
-
- VOID(my_close(fd,MYF(0)));
- end_io_cache(&file);
- m_info->open_list.data=(void*) m_info;
- pthread_mutex_lock(&THR_LOCK_open);
- mrg_open_list=list_add(mrg_open_list,&m_info->open_list);
- pthread_mutex_unlock(&THR_LOCK_open);
- DBUG_RETURN(m_info);
-
-err:
- save_errno=my_errno;
- switch (errpos) {
- case 1:
- VOID(my_close(fd,MYF(0)));
- end_io_cache(&file);
- for (i=files ; i-- > 0 ; )
- {
- isam=last_isam;
- if (i)
- last_isam=(N_INFO*) (isam->open_list.next->data);
- nisam_close(isam);
- }
- }
- my_errno=save_errno;
- DBUG_RETURN (NULL);
-}