~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to include/my_handler.h

Removed DBUG symbols and fixed TRUE/FALSE

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
#ifndef _my_handler_h
19
19
#define _my_handler_h
20
20
 
21
 
#include <storage/myisam/myisampack.h>
 
21
#include "myisampack.h"
22
22
#ifdef  __cplusplus
23
23
extern "C" {
24
24
#endif
47
47
 
48
48
typedef struct st_HA_KEYSEG             /* Key-portion */
49
49
{
50
 
  const CHARSET_INFO *charset;
51
 
  uint32_t start;                               /* Start of key in record */
52
 
  uint32_t null_pos;                    /* position to NULL indicator */
53
 
  uint16_t bit_pos;                       /* Position to bit part */
54
 
  uint16_t flag;
55
 
  uint16_t length;                      /* Keylength */
56
 
  uint8_t  type;                                /* Type of key (for sort) */
57
 
  uint8_t  language;
58
 
  uint8_t  null_bit;                    /* bitmask to test for NULL */
59
 
  uint8_t  bit_start,bit_end;           /* if bit field */
60
 
  uint8_t  bit_length;                    /* Length of bit part */
 
50
  CHARSET_INFO *charset;
 
51
  uint32 start;                         /* Start of key in record */
 
52
  uint32 null_pos;                      /* position to NULL indicator */
 
53
  uint16 bit_pos;                       /* Position to bit part */
 
54
  uint16 flag;
 
55
  uint16 length;                        /* Keylength */
 
56
  uint8  type;                          /* Type of key (for sort) */
 
57
  uint8  language;
 
58
  uint8  null_bit;                      /* bitmask to test for NULL */
 
59
  uint8  bit_start,bit_end;             /* if bit field */
 
60
  uint8  bit_length;                    /* Length of bit part */
61
61
} HA_KEYSEG;
62
62
 
63
63
#define get_key_length(length,key) \
64
 
{ if (*(unsigned char*) (key) != 255) \
65
 
    length= (uint) *(unsigned char*) ((key)++); \
 
64
{ if (*(uchar*) (key) != 255) \
 
65
    length= (uint) *(uchar*) ((key)++); \
66
66
  else \
67
67
  { length= mi_uint2korr((key)+1); (key)+=3; } \
68
68
}
69
69
 
70
70
#define get_key_length_rdonly(length,key) \
71
 
{ if (*(unsigned char*) (key) != 255) \
72
 
    length= ((uint) *(unsigned char*) ((key))); \
 
71
{ if (*(uchar*) (key) != 255) \
 
72
    length= ((uint) *(uchar*) ((key))); \
73
73
  else \
74
74
  { length= mi_uint2korr((key)+1); } \
75
75
}
76
76
 
77
77
#define get_key_pack_length(length,length_pack,key) \
78
 
{ if (*(unsigned char*) (key) != 255) \
79
 
  { length= (uint) *(unsigned char*) ((key)++); length_pack= 1; }\
 
78
{ if (*(uchar*) (key) != 255) \
 
79
  { length= (uint) *(uchar*) ((key)++); length_pack= 1; }\
80
80
  else \
81
81
  { length=mi_uint2korr((key)+1); (key)+= 3; length_pack= 3; } \
82
82
}
91
91
#define size_to_store_key_length(length) ((length) < 255 ? 1 : 3)
92
92
 
93
93
#define get_rec_bits(bit_ptr, bit_ofs, bit_len) \
94
 
  (((((uint16_t) (bit_ptr)[1] << 8) | (uint16_t) (bit_ptr)[0]) >> (bit_ofs)) & \
 
94
  (((((uint16) (bit_ptr)[1] << 8) | (uint16) (bit_ptr)[0]) >> (bit_ofs)) & \
95
95
   ((1 << (bit_len)) - 1))
96
96
 
97
97
#define set_rec_bits(bits, bit_ptr, bit_ofs, bit_len) \
106
106
#define clr_rec_bits(bit_ptr, bit_ofs, bit_len) \
107
107
  set_rec_bits(0, bit_ptr, bit_ofs, bit_len)
108
108
 
109
 
extern int ha_compare_text(const CHARSET_INFO * const, unsigned char *, uint, unsigned char *, uint, bool, bool);
 
109
extern int ha_compare_text(CHARSET_INFO *, uchar *, uint, uchar *, uint ,
 
110
                           my_bool, my_bool);
110
111
 
111
 
extern HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, unsigned char *a);
 
112
extern HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, uchar *a);
112
113
extern void my_handler_error_register(void);
113
114
extern void my_handler_error_unregister(void);
114
 
extern int ha_key_cmp(HA_KEYSEG *keyseg, unsigned char *a,unsigned char *b,
115
 
                      uint32_t key_length,uint32_t nextflag,uint32_t *diff_length);
 
115
extern int ha_key_cmp(HA_KEYSEG *keyseg, uchar *a,uchar *b,
 
116
                      uint key_length,uint nextflag,uint *diff_length);
116
117
 
117
118
/*
118
119
  Inside an in-memory data record, memory pointers to pieces of the