~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/myisam/myisam_priv.h

  • Committer: Olaf van der Spek
  • Date: 2011-06-23 11:44:30 UTC
  • mto: This revision was merged to the branch mainline in revision 2348.
  • Revision ID: olafvdspek@gmail.com-20110623114430-no355yypk4y3icqb
Refactor

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
 
16
16
/* This file is included by all internal myisam files */
17
17
 
18
 
#ifndef PLUGIN_MYISAM_MYISAM_PRIV_H
19
 
#define PLUGIN_MYISAM_MYISAM_PRIV_H
20
 
 
21
 
#include "config.h"
 
18
#pragma once
 
19
 
 
20
#include <config.h>
 
21
 
22
22
#include "myisam.h"                     /* Structs & some defines */
23
23
#include "myisampack.h"                 /* packing of keys */
24
 
#include "drizzled/tree.h"
25
 
#include "drizzled/internal/my_pthread.h"
 
24
#include <drizzled/tree.h>
 
25
#include <drizzled/internal/my_pthread.h>
26
26
#include <drizzled/thr_lock.h>
27
27
#include <drizzled/common.h>
 
28
#include <drizzled/enum.h>
 
29
#include <drizzled/dynamic_array.h>
 
30
#include <drizzled/error_t.h>
28
31
 
29
32
#include <assert.h>
30
33
#include <fcntl.h>
51
54
  drizzled::internal::my_off_t key_empty;                       /* lost space in indexfile */
52
55
  drizzled::internal::my_off_t key_file_length;
53
56
  drizzled::internal::my_off_t data_file_length;
54
 
  drizzled::internal::ha_checksum checksum;
 
57
  ha_checksum checksum;
55
58
} MI_STATUS_INFO;
56
59
 
57
60
typedef struct st_mi_state_info
89
92
  ulong sec_index_changed;              /* Updated when new sec_index */
90
93
  ulong sec_index_used;                 /* which extra index are in use */
91
94
  uint64_t key_map;                     /* Which keys are in use */
92
 
  drizzled::internal::ha_checksum checksum;                 /* Table checksum */
 
95
  ha_checksum checksum;                 /* Table checksum */
93
96
  ulong version;                        /* timestamp of create */
94
97
  time_t create_time;                   /* Time when created database */
95
98
  time_t recover_time;                  /* Time for last recover */
168
171
 
169
172
#define MAX_NONMAPPED_INSERTS 1000
170
173
 
171
 
namespace drizzled { class Session; }
172
 
 
173
174
typedef struct st_mi_isam_share {       /* Shared between opens */
174
175
  MI_STATE_INFO state;
175
176
  MI_BASE_INFO base;
204
205
  int (*read_rnd)(struct st_myisam_info*, unsigned char*, drizzled::internal::my_off_t, bool);
205
206
  int (*compare_record)(struct st_myisam_info*, const unsigned char *);
206
207
  /* Function to use for a row checksum. */
207
 
  drizzled::internal::ha_checksum (*calc_checksum)(struct st_myisam_info*, const unsigned char *);
 
208
  ha_checksum (*calc_checksum)(struct st_myisam_info*, const unsigned char *);
208
209
  int (*compare_unique)(struct st_myisam_info*, MI_UNIQUEDEF *,
209
210
                        const unsigned char *record, drizzled::internal::my_off_t pos);
210
211
  size_t (*file_read)(MI_INFO *, unsigned char *, size_t, drizzled::internal::my_off_t, drizzled::myf);
281
282
  drizzled::internal::my_off_t last_keypage;            /* Last key page read */
282
283
  drizzled::internal::my_off_t last_search_keypage;             /* Last keypage when searching */
283
284
  drizzled::internal::my_off_t dupp_key_pos;
284
 
  drizzled::internal::ha_checksum checksum;                 /* Temp storage for row checksum */
 
285
  ha_checksum checksum;                 /* Temp storage for row checksum */
285
286
  /* QQ: the folloing two xxx_length fields should be removed,
286
287
     as they are not compatible with parallel repair */
287
288
  ulong packed_length,blob_length;      /* Length of found, packed record */
301
302
  uint  data_changed;                   /* Somebody has changed data */
302
303
  uint  save_update;                    /* When using KEY_READ */
303
304
  int   save_lastinx;
304
 
  drizzled::internal::IO_CACHE rec_cache;                       /* When cacheing records */
 
305
  drizzled::internal::io_cache_st rec_cache;                    /* When cacheing records */
305
306
  uint32_t  preload_buff_size;              /* When preloading indexes */
306
307
  drizzled::myf lock_wait;                      /* is 0 or MY_DONT_WAIT */
307
308
  bool was_locked;                      /* Was locked in panic */
329
330
typedef struct st_mi_sort_param
330
331
{
331
332
  pthread_t  thr;
332
 
  drizzled::internal::IO_CACHE read_cache, tempfile, tempfile_for_exceptions;
 
333
  drizzled::internal::io_cache_st read_cache, tempfile, tempfile_for_exceptions;
333
334
  drizzled::DYNAMIC_ARRAY buffpek;
334
335
  MI_BIT_BUFF   bit_buff;               /* For parallel repair of packrec. */
335
336
 
358
359
  int (*key_write)(struct st_mi_sort_param *, const void *);
359
360
  void (*lock_in_memory)(MI_CHECK *);
360
361
  int (*write_keys)(struct st_mi_sort_param *, register unsigned char **,
361
 
                     uint32_t , struct st_buffpek *, drizzled::internal::IO_CACHE *);
362
 
  unsigned int (*read_to_buffer)(drizzled::internal::IO_CACHE *,struct st_buffpek *, uint);
363
 
  int (*write_key)(struct st_mi_sort_param *, drizzled::internal::IO_CACHE *,unsigned char *,
 
362
                     uint32_t , struct st_buffpek *, drizzled::internal::io_cache_st *);
 
363
  unsigned int (*read_to_buffer)(drizzled::internal::io_cache_st *,struct st_buffpek *, uint);
 
364
  int (*write_key)(struct st_mi_sort_param *, drizzled::internal::io_cache_st *,unsigned char *,
364
365
                       uint, uint);
365
366
} MI_SORT_PARAM;
366
367
 
607
608
                         unsigned char *old, drizzled::key_part_map keypart_map,
608
609
                         HA_KEYSEG **last_used_keyseg);
609
610
extern int _mi_read_key_record(MI_INFO *info,drizzled::internal::my_off_t filepos,unsigned char *buf);
610
 
extern int _mi_read_cache(drizzled::internal::IO_CACHE *info,unsigned char *buff,drizzled::internal::my_off_t pos,
 
611
extern int _mi_read_cache(drizzled::internal::io_cache_st *info,unsigned char *buff,drizzled::internal::my_off_t pos,
611
612
                          uint32_t length,int re_read_if_possibly);
612
613
extern uint64_t retrieve_auto_increment(MI_INFO *info,const unsigned char *record);
613
614
 
686
687
                                    int file, drizzled::internal::my_off_t filepos);
687
688
extern void _my_store_blob_length(unsigned char *pos,uint32_t pack_length,uint32_t length);
688
689
extern void mi_report_error(int errcode, const char *file_name);
 
690
extern void mi_report_error(drizzled::error_t errcode, const char *file_name);
689
691
extern size_t mi_mmap_pread(MI_INFO *info, unsigned char *Buffer,
690
692
                            size_t Count, drizzled::internal::my_off_t offset, drizzled::myf MyFlags);
691
693
extern size_t mi_mmap_pwrite(MI_INFO *info, const unsigned char *Buffer,
706
708
extern int mi_enable_indexes(MI_INFO *info);
707
709
extern int mi_indexes_are_disabled(MI_INFO *info);
708
710
ulong _my_calc_total_blob_length(MI_INFO *info, const unsigned char *record);
709
 
drizzled::internal::ha_checksum mi_checksum(MI_INFO *info, const unsigned char *buf);
710
 
drizzled::internal::ha_checksum mi_static_checksum(MI_INFO *info, const unsigned char *buf);
 
711
ha_checksum mi_checksum(MI_INFO *info, const unsigned char *buf);
 
712
ha_checksum mi_static_checksum(MI_INFO *info, const unsigned char *buf);
711
713
bool mi_check_unique(MI_INFO *info, MI_UNIQUEDEF *def, unsigned char *record,
712
 
                     drizzled::internal::ha_checksum unique_hash, drizzled::internal::my_off_t pos);
713
 
drizzled::internal::ha_checksum mi_unique_hash(MI_UNIQUEDEF *def, const unsigned char *buf);
 
714
                     ha_checksum unique_hash, drizzled::internal::my_off_t pos);
 
715
ha_checksum mi_unique_hash(MI_UNIQUEDEF *def, const unsigned char *buf);
714
716
int _mi_cmp_static_unique(MI_INFO *info, MI_UNIQUEDEF *def,
715
717
                           const unsigned char *record, drizzled::internal::my_off_t pos);
716
718
int _mi_cmp_dynamic_unique(MI_INFO *info, MI_UNIQUEDEF *def,
753
755
void _mi_report_crashed(MI_INFO *file, const char *message, const char *sfile,
754
756
                        uint32_t sline);
755
757
 
756
 
#endif /* PLUGIN_MYISAM_MYISAM_PRIV_H */
 
758
 
 
759
#define DFLT_INIT_HITS  3