~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/heap/heapdef.h

  • Committer: Brian Aker
  • Date: 2008-08-05 06:19:05 UTC
  • mfrom: (244.1.1 drizzle-mem-ebay)
  • mto: This revision was merged to the branch mainline in revision 264.
  • Revision ID: brian@tangent.org-20080805061905-1r8krslxae65qh76
Merge from Harrison Fisk of the Ebay + Google Hash engine.

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
#define HP_MIN_RECORDS_IN_BLOCK 16
33
33
#define HP_MAX_RECORDS_IN_BLOCK 8192
34
34
 
 
35
#define CHUNK_STATUS_DELETED 0    /* this chunk has been deleted and can be reused */
 
36
#define CHUNK_STATUS_ACTIVE  1    /* this chunk represents the first part of a live record */
 
37
#define CHUNK_STATUS_LINKED  2    /* this chunk is a continuation from another chunk (part of chunkset) */
 
38
 
35
39
        /* Some extern variables */
36
40
 
37
41
extern LIST *heap_open_list,*heap_share_list;
42
46
#define hp_find_hash(A,B) ((HASH_INFO*) hp_find_block((A),(B)))
43
47
 
44
48
        /* Find pos for record and update it in info->current_ptr */
45
 
#define hp_find_record(info,pos) (info)->current_ptr= hp_find_block(&(info)->s->block,pos)
 
49
#define hp_find_record(info,pos) (info)->current_ptr= hp_find_block(&(info)->s->recordspace.block,pos)
 
50
 
 
51
#define get_chunk_status(info,ptr) (ptr[(info)->offset_status])
 
52
 
 
53
#define get_chunk_count(info,rec_length) ((rec_length + (info)->chunk_dataspace_length - 1) / (info)->chunk_dataspace_length)
46
54
 
47
55
typedef struct st_hp_hash_info
48
56
{
100
108
extern void hp_clear_keys(HP_SHARE *info);
101
109
extern uint hp_rb_pack_key(HP_KEYDEF *keydef, uchar *key, const uchar *old,
102
110
                           key_part_map keypart_map);
 
111
 
 
112
   /* Chunkset management (alloc/free/encode/decode) functions */
 
113
 
 
114
extern uchar *hp_allocate_chunkset(HP_DATASPACE *info, uint chunk_count);
 
115
extern int hp_reallocate_chunkset(HP_DATASPACE *info, uint chunk_count, uchar* pos);
 
116
extern void hp_free_chunks(HP_DATASPACE *info, uchar *pos);
 
117
extern void hp_clear_dataspace(HP_DATASPACE *info);
 
118
 
 
119
extern uint hp_get_encoded_data_length(HP_SHARE *info, const uchar *record, uint *chunk_count);
 
120
extern void hp_copy_record_data_to_chunkset(HP_SHARE *info, const uchar *record, uchar *pos);
 
121
extern void hp_extract_record(HP_SHARE *info, uchar *record, const uchar *pos);
 
122
extern uint hp_process_record_data_to_chunkset(HP_SHARE *info, const uchar *record, uchar *pos, uint is_compare);
 
123
 
 
124
 
 
125
 
103
126
extern pthread_mutex_t THR_LOCK_heap;
104
127
C_MODE_END