~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/heap/heapdef.h

  • Committer: Monty Taylor
  • Date: 2008-08-16 21:06:22 UTC
  • Revision ID: monty@inaugust.com-20080816210622-zpnn13unyinqzn72
Updated po files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
#ifndef HEAPDEF_H
18
18
#define HEAPDEF_H
19
19
 
20
 
#include <drizzled/global.h>
21
 
#include <drizzled/base.h>
22
 
 
23
 
#include <mysys/my_sys.h>
24
 
#include <mystrings/m_ctype.h>
 
20
#include <drizzled/base.h>              /* This includes global */
 
21
C_MODE_START
25
22
#include <mysys/my_pthread.h>
26
23
#include "heap.h"                       /* Structs & some defines */
27
24
#include <mysys/my_tree.h>
34
31
  as possible and keep memory consumption down.
35
32
*/
36
33
 
37
 
#ifdef __cplusplus
38
 
extern "C" {
39
 
#endif
40
 
 
41
34
#define HP_MIN_RECORDS_IN_BLOCK 16
42
35
#define HP_MAX_RECORDS_IN_BLOCK 8192
43
36
 
64
57
typedef struct st_hp_hash_info
65
58
{
66
59
  struct st_hp_hash_info *next_key;
67
 
  unsigned char *ptr_to_rec;
 
60
  uchar *ptr_to_rec;
68
61
} HASH_INFO;
69
62
 
70
63
typedef struct {
71
64
  HA_KEYSEG *keyseg;
72
 
  uint32_t key_length;
73
 
  uint32_t search_flag;
 
65
  uint key_length;
 
66
  uint search_flag;
74
67
} heap_rb_param;
75
 
 
 
68
      
76
69
        /* Prototypes for intern functions */
77
70
 
78
71
extern HP_SHARE *hp_find_named_heap(const char *name);
79
 
extern int hp_rectest(HP_INFO *info,const unsigned char *old);
80
 
extern unsigned char *hp_find_block(HP_BLOCK *info,uint32_t pos);
 
72
extern int hp_rectest(HP_INFO *info,const uchar *old);
 
73
extern uchar *hp_find_block(HP_BLOCK *info,uint32_t pos);
81
74
extern int hp_get_new_block(HP_BLOCK *info, size_t* alloc_length);
82
75
extern void hp_free(HP_SHARE *info);
83
 
extern unsigned char *hp_free_level(HP_BLOCK *block,uint32_t level,HP_PTRS *pos,
84
 
                           unsigned char *last_pos);
 
76
extern uchar *hp_free_level(HP_BLOCK *block,uint level,HP_PTRS *pos,
 
77
                           uchar *last_pos);
85
78
extern int hp_write_key(HP_INFO *info, HP_KEYDEF *keyinfo,
86
 
                        const unsigned char *record, unsigned char *recpos);
87
 
extern int hp_rb_write_key(HP_INFO *info, HP_KEYDEF *keyinfo,
88
 
                           const unsigned char *record, unsigned char *recpos);
 
79
                        const uchar *record, uchar *recpos);
 
80
extern int hp_rb_write_key(HP_INFO *info, HP_KEYDEF *keyinfo, 
 
81
                           const uchar *record, uchar *recpos);
89
82
extern int hp_rb_delete_key(HP_INFO *info,HP_KEYDEF *keyinfo,
90
 
                            const unsigned char *record,unsigned char *recpos,int flag);
 
83
                            const uchar *record,uchar *recpos,int flag);
91
84
extern int hp_delete_key(HP_INFO *info,HP_KEYDEF *keyinfo,
92
 
                         const unsigned char *record,unsigned char *recpos,int flag);
 
85
                         const uchar *record,uchar *recpos,int flag);
93
86
extern HASH_INFO *_heap_find_hash(HP_BLOCK *block,uint32_t pos);
94
 
extern unsigned char *hp_search(HP_INFO *info,HP_KEYDEF *keyinfo,const unsigned char *key,
95
 
                       uint32_t nextflag);
96
 
extern unsigned char *hp_search_next(HP_INFO *info, HP_KEYDEF *keyinfo,
97
 
                            const unsigned char *key, HASH_INFO *pos);
98
 
extern uint32_t hp_hashnr(HP_KEYDEF *keyinfo,const unsigned char *key);
99
 
extern uint32_t hp_rec_hashnr(HP_KEYDEF *keyinfo,const unsigned char *rec);
 
87
extern uchar *hp_search(HP_INFO *info,HP_KEYDEF *keyinfo,const uchar *key,
 
88
                       uint nextflag);
 
89
extern uchar *hp_search_next(HP_INFO *info, HP_KEYDEF *keyinfo,
 
90
                            const uchar *key, HASH_INFO *pos);
 
91
extern uint32_t hp_hashnr(HP_KEYDEF *keyinfo,const uchar *key);
 
92
extern uint32_t hp_rec_hashnr(HP_KEYDEF *keyinfo,const uchar *rec);
100
93
extern uint32_t hp_mask(uint32_t hashnr,uint32_t buffmax,uint32_t maxlength);
101
94
extern void hp_movelink(HASH_INFO *pos,HASH_INFO *next_link,
102
95
                         HASH_INFO *newlink);
103
 
extern int hp_rec_key_cmp(HP_KEYDEF *keydef,const unsigned char *rec1,
104
 
                          const unsigned char *rec2,
 
96
extern int hp_rec_key_cmp(HP_KEYDEF *keydef,const uchar *rec1,
 
97
                          const uchar *rec2,
105
98
                          bool diff_if_only_endspace_difference);
106
 
extern int hp_key_cmp(HP_KEYDEF *keydef,const unsigned char *rec,
107
 
                      const unsigned char *key);
108
 
extern void hp_make_key(HP_KEYDEF *keydef,unsigned char *key,const unsigned char *rec);
109
 
extern uint32_t hp_rb_make_key(HP_KEYDEF *keydef, unsigned char *key,
110
 
                           const unsigned char *rec, unsigned char *recpos);
111
 
extern uint32_t hp_rb_key_length(HP_KEYDEF *keydef, const unsigned char *key);
112
 
extern uint32_t hp_rb_null_key_length(HP_KEYDEF *keydef, const unsigned char *key);
113
 
extern uint32_t hp_rb_var_key_length(HP_KEYDEF *keydef, const unsigned char *key);
114
 
extern bool hp_if_null_in_key(HP_KEYDEF *keyinfo, const unsigned char *record);
 
99
extern int hp_key_cmp(HP_KEYDEF *keydef,const uchar *rec,
 
100
                      const uchar *key);
 
101
extern void hp_make_key(HP_KEYDEF *keydef,uchar *key,const uchar *rec);
 
102
extern uint hp_rb_make_key(HP_KEYDEF *keydef, uchar *key,
 
103
                           const uchar *rec, uchar *recpos);
 
104
extern uint hp_rb_key_length(HP_KEYDEF *keydef, const uchar *key);
 
105
extern uint hp_rb_null_key_length(HP_KEYDEF *keydef, const uchar *key);
 
106
extern uint hp_rb_var_key_length(HP_KEYDEF *keydef, const uchar *key);
 
107
extern bool hp_if_null_in_key(HP_KEYDEF *keyinfo, const uchar *record);
115
108
extern int hp_close(register HP_INFO *info);
116
109
extern void hp_clear(HP_SHARE *info);
117
110
extern void hp_clear_keys(HP_SHARE *info);
118
 
extern uint32_t hp_rb_pack_key(HP_KEYDEF *keydef, unsigned char *key, const unsigned char *old,
 
111
extern uint hp_rb_pack_key(HP_KEYDEF *keydef, uchar *key, const uchar *old,
119
112
                           key_part_map keypart_map);
120
113
 
121
114
   /* Chunkset management (alloc/free/encode/decode) functions */
122
 
 
123
 
extern unsigned char *hp_allocate_chunkset(HP_DATASPACE *info, uint32_t chunk_count);
124
 
extern int hp_reallocate_chunkset(HP_DATASPACE *info, uint32_t chunk_count, unsigned char* pos);
125
 
extern void hp_free_chunks(HP_DATASPACE *info, unsigned char *pos);
 
115
 
 
116
extern uchar *hp_allocate_chunkset(HP_DATASPACE *info, uint chunk_count);
 
117
extern int hp_reallocate_chunkset(HP_DATASPACE *info, uint chunk_count, uchar* pos);
 
118
extern void hp_free_chunks(HP_DATASPACE *info, uchar *pos);
126
119
extern void hp_clear_dataspace(HP_DATASPACE *info);
127
 
 
128
 
extern uint32_t hp_get_encoded_data_length(HP_SHARE *info, const unsigned char *record, uint32_t *chunk_count);
129
 
extern void hp_copy_record_data_to_chunkset(HP_SHARE *info, const unsigned char *record, unsigned char *pos);
130
 
extern void hp_extract_record(HP_SHARE *info, unsigned char *record, const unsigned char *pos);
131
 
extern uint32_t hp_process_record_data_to_chunkset(HP_SHARE *info, const unsigned char *record, unsigned char *pos, uint32_t is_compare);
 
120
 
 
121
extern uint hp_get_encoded_data_length(HP_SHARE *info, const uchar *record, uint *chunk_count);
 
122
extern void hp_copy_record_data_to_chunkset(HP_SHARE *info, const uchar *record, uchar *pos);
 
123
extern void hp_extract_record(HP_SHARE *info, uchar *record, const uchar *pos);
 
124
extern uint hp_process_record_data_to_chunkset(HP_SHARE *info, const uchar *record, uchar *pos, uint is_compare);
132
125
 
133
126
 
134
127
 
135
128
extern pthread_mutex_t THR_LOCK_heap;
136
 
 
137
 
#ifdef __cplusplus
138
 
}
139
 
#endif
 
129
C_MODE_END
140
130
 
141
131
#endif /* HEAPDEF_H */