home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 January / Chip_2001-01_cd1.bin / tema / mysql / mysql-3.23.28g-win-source.exe / include / myisammrg.h < prev    next >
C/C++ Source or Header  |  2000-09-21  |  3KB  |  100 lines

  1. /* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
  2.  
  3.    This library is free software; you can redistribute it and/or
  4.    modify it under the terms of the GNU Library General Public
  5.    License as published by the Free Software Foundation; either
  6.    version 2 of the License, or (at your option) any later version.
  7.  
  8.    This library is distributed in the hope that it will be useful,
  9.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  11.    Library General Public License for more details.
  12.  
  13.    You should have received a copy of the GNU Library General Public
  14.    License along with this library; if not, write to the Free
  15.    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  16.    MA 02111-1307, USA */
  17.  
  18. /* This file should be included when using merge_isam_funktions */
  19.  
  20. #ifndef _myisammrg_h
  21. #define _myisammrg_h
  22. #ifdef    __cplusplus
  23. extern "C" {
  24. #endif
  25.  
  26. #ifndef _my_base_h
  27. #include <my_base.h>
  28. #endif
  29. #ifndef _myisam_h
  30. #include <myisam.h>
  31. #endif
  32.  
  33. #include <queues.h>
  34.  
  35. #define MYRG_NAME_EXT    ".MRG"
  36.  
  37.     /* Param to/from myrg_info */
  38.  
  39. typedef struct st_mymerge_info        /* Struct from h_info */
  40. {
  41.   ulonglong records;            /* Records in database */
  42.   ulonglong deleted;            /* Deleted records in database */
  43.   ulonglong recpos;            /* Pos for last used record */
  44.   ulonglong data_file_length;
  45.   uint    reclength;            /* Recordlength */
  46.   int    errkey;                /* With key was dupplicated on err */
  47.   uint    options;            /* HA_OPTIONS_... used */
  48. } MYMERGE_INFO;
  49.  
  50. typedef struct st_myrg_table_info
  51. {
  52.   struct st_myisam_info *table;
  53.   ulonglong file_offset;
  54. } MYRG_TABLE;
  55.  
  56. typedef struct st_myrg_info
  57. {
  58.   MYRG_TABLE *open_tables,*current_table,*end_table,*last_used_table;
  59.   ulonglong records;            /* records in tables */
  60.   ulonglong del;            /* Removed records */
  61.   ulonglong data_file_length;
  62.   uint     tables,options,reclength,keys;
  63.   my_bool cache_in_use;
  64.   LIST    open_list;
  65.   QUEUE     by_key;
  66. } MYRG_INFO;
  67.  
  68.  
  69.     /* Prototypes for merge-functions */
  70.  
  71. extern int myrg_close(MYRG_INFO *file);
  72. extern int myrg_delete(MYRG_INFO *file,const byte *buff);
  73. extern MYRG_INFO *myrg_open(const char *name,int mode,int wait_if_locked);
  74. extern int myrg_panic(enum ha_panic_function function);
  75. extern int myrg_rfirst(MYRG_INFO *file,byte *buf,int inx);
  76. extern int myrg_rlast(MYRG_INFO *file,byte *buf,int inx);
  77. extern int myrg_rnext(MYRG_INFO *file,byte *buf,int inx);
  78. extern int myrg_rprev(MYRG_INFO *file,byte *buf,int inx);
  79. extern int myrg_rkey(MYRG_INFO *file,byte *buf,int inx,const byte *key,
  80.                uint key_len, enum ha_rkey_function search_flag);
  81. extern int myrg_rrnd(MYRG_INFO *file,byte *buf,ulonglong pos);
  82. extern int myrg_rsame(MYRG_INFO *file,byte *record,int inx);
  83. extern int myrg_update(MYRG_INFO *file,const byte *old,byte *new_rec);
  84. extern int myrg_status(MYRG_INFO *file,MYMERGE_INFO *x,int flag);
  85. extern int myrg_lock_database(MYRG_INFO *file,int lock_type);
  86. extern int myrg_create(const char *name,const char **table_names,
  87.                my_bool fix_names);
  88. extern int myrg_extra(MYRG_INFO *file,enum ha_extra_function function);
  89. extern ha_rows myrg_records_in_range(MYRG_INFO *info,int inx,
  90.                     const byte *start_key,uint start_key_len,
  91.                     enum ha_rkey_function start_search_flag,
  92.                     const byte *end_key,uint end_key_len,
  93.                     enum ha_rkey_function end_search_flag);
  94.  
  95. extern ulonglong myrg_position(MYRG_INFO *info);
  96. #ifdef    __cplusplus
  97. }
  98. #endif
  99. #endif
  100.