~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/myisam/myisamdef.h

  • Committer: Toru Maesaka
  • Date: 2008-12-17 07:16:37 UTC
  • mto: (685.1.40 devel) (713.1.5 devel)
  • mto: This revision was merged to the branch mainline in revision 713.
  • Revision ID: dev@torum.net-20081217071637-7j9040w7lpms77r2
Removed my_time() and added error checking

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
#ifndef MYISAMDEF_H
19
19
#define MYISAMDEF_H
20
20
 
 
21
#include <drizzled/global.h>
21
22
#include "myisam.h"                     /* Structs & some defines */
22
23
#include "myisampack.h"                 /* packing of keys */
23
24
#include <mysys/my_tree.h>
24
25
#include <mysys/my_pthread.h>
25
26
#include <mysys/thr_lock.h>
26
 
#include <libdrizzle/drizzle_com.h>
27
 
 
28
 
#if defined(my_write) && !defined(MAP_TO_USE_RAID)
 
27
#include <drizzled/common.h>
 
28
 
 
29
#include <string.h>
 
30
 
 
31
#if defined(my_write)
29
32
#undef my_write                         /* undef map from my_nosys; We need test-if-disk full */
30
33
#endif
31
34
 
 
35
#ifdef  __cplusplus
 
36
extern "C" {
 
37
#endif
 
38
 
32
39
typedef struct st_mi_status_info
33
40
{
34
41
  ha_rows records;                      /* Rows in table */
130
137
  uint32_t extra_alloc_procent;
131
138
  /* Info about raid */
132
139
  uint32_t raid_type,raid_chunks;
133
 
  ulong raid_chunksize;
 
140
  uint32_t raid_chunksize;
134
141
  /* The following are from the header */
135
142
  uint32_t key_parts,all_key_parts;
136
143
} MI_BASE_INFO;
152
159
  unsigned char version;
153
160
} MI_PACK;
154
161
 
155
 
#define MAX_NONMAPPED_INSERTS 1000      
 
162
#define MAX_NONMAPPED_INSERTS 1000
156
163
 
157
164
typedef struct st_mi_isam_share {       /* Shared between opens */
158
165
  MI_STATE_INFO state;
212
219
    concurrent_insert;
213
220
  THR_LOCK lock;
214
221
  pthread_mutex_t intern_lock;          /* Locking for use with _locking */
215
 
  rw_lock_t *key_root_lock;
 
222
  pthread_rwlock_t *key_root_lock;
216
223
  my_off_t mmaped_length;
217
224
  uint32_t     nonmmaped_inserts;           /* counter of writing in non-mmaped
218
225
                                           area */
219
 
  rw_lock_t mmap_lock;
 
226
  pthread_rwlock_t mmap_lock;
220
227
} MYISAM_SHARE;
221
228
 
222
229
 
335
342
  void *wordlist, *wordptr;
336
343
  MEM_ROOT wordroot;
337
344
  unsigned char *record;
338
 
  MY_TMPDIR *tmpdir;
339
345
  int (*key_cmp)(struct st_mi_sort_param *, const void *, const void *);
340
346
  int (*key_read)(struct st_mi_sort_param *,void *);
341
347
  int (*key_write)(struct st_mi_sort_param *, const void *);
536
542
                            MI_KEY_PARAM *s_temp);
537
543
 
538
544
extern int _mi_ck_delete(MI_INFO *info,uint32_t keynr,unsigned char *key,uint32_t key_length);
539
 
extern int _mi_readinfo(MI_INFO *info,int lock_flag,int check_keybuffer);
 
545
int _mi_readinfo(MI_INFO *info,int lock_flag,int check_keybuffer);
540
546
extern int _mi_writeinfo(MI_INFO *info,uint32_t options);
541
547
extern int _mi_test_if_changed(MI_INFO *info);
542
548
extern int _mi_mark_file_changed(MI_INFO *info);
557
563
extern void _mi_kpointer(MI_INFO *info,unsigned char *buff,my_off_t pos);
558
564
extern my_off_t _mi_dpos(MI_INFO *info, uint32_t nod_flag,unsigned char *after_key);
559
565
extern my_off_t _mi_rec_pos(MYISAM_SHARE *info, unsigned char *ptr);
560
 
extern void _mi_dpointer(MI_INFO *info, unsigned char *buff,my_off_t pos);
 
566
void _mi_dpointer(MI_INFO *info, unsigned char *buff,my_off_t pos);
561
567
extern uint32_t _mi_get_static_key(MI_KEYDEF *keyinfo,uint32_t nod_flag,unsigned char * *page,
562
568
                               unsigned char *key);
563
569
extern uint32_t _mi_get_pack_key(MI_KEYDEF *keyinfo,uint32_t nod_flag,unsigned char * *page,
594
600
                          uint32_t length,int re_read_if_possibly);
595
601
extern uint64_t retrieve_auto_increment(MI_INFO *info,const unsigned char *record);
596
602
 
597
 
extern unsigned char *mi_alloc_rec_buff(MI_INFO *,ulong, unsigned char**);
 
603
unsigned char *mi_alloc_rec_buff(MI_INFO *info, size_t length, unsigned char **buf);
598
604
#define mi_get_rec_buff_ptr(info,buf)                              \
599
605
        ((((info)->s->options & HA_OPTION_PACK_RECORD) && (buf)) ? \
600
606
        (buf) - MI_REC_BUFF_OFFSET : (buf))
663
669
#define fast_mi_writeinfo(INFO) if (!(INFO)->s->tot_locks) (void) _mi_writeinfo((INFO),0)
664
670
#define fast_mi_readinfo(INFO) ((INFO)->lock_type == F_UNLCK) && _mi_readinfo((INFO),F_RDLCK,1)
665
671
 
666
 
#ifdef  __cplusplus
667
 
extern "C" {
668
 
#endif
669
 
 
670
672
extern uint32_t _mi_get_block_info(MI_BLOCK_INFO *,File, my_off_t);
671
673
extern uint32_t _mi_rec_pack(MI_INFO *info,unsigned char *to,const unsigned char *from);
672
674
extern uint32_t _mi_pack_get_block_info(MI_INFO *myisam, MI_BIT_BUFF *bit_buff,
738
740
int flush_blocks(MI_CHECK *param, KEY_CACHE *key_cache, File file);
739
741
 
740
742
int sort_write_record(MI_SORT_PARAM *sort_param);
741
 
int _create_index_by_sort(MI_SORT_PARAM *info,bool no_messages, uint32_t);
 
743
int _create_index_by_sort(MI_SORT_PARAM *info,bool no_messages, size_t);
742
744
 
743
745
extern void mi_set_index_cond_func(MI_INFO *info, index_cond_func_t func,
744
746
                                   void *func_arg);