15
15
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
16
16
MA 02111-1307, USA */
18
#ifndef PLUGIN_MYISAM_MY_HANDLER_H
19
#define PLUGIN_MYISAM_MY_HANDLER_H
21
#include <storage/myisam/myisampack.h>
21
#include "drizzled/charset_info.h"
22
#include <plugin/myisam/myisampack.h>
63
64
#define get_key_length(length,key) \
64
{ if (*(uchar*) (key) != 255) \
65
length= (uint) *(uchar*) ((key)++); \
65
{ if (*(unsigned char*) (key) != 255) \
66
length= (uint) *(unsigned char*) ((key)++); \
67
68
{ length= mi_uint2korr((key)+1); (key)+=3; } \
70
71
#define get_key_length_rdonly(length,key) \
71
{ if (*(uchar*) (key) != 255) \
72
length= ((uint) *(uchar*) ((key))); \
72
{ if (*(unsigned char*) (key) != 255) \
73
length= ((uint) *(unsigned char*) ((key))); \
74
75
{ length= mi_uint2korr((key)+1); } \
77
78
#define get_key_pack_length(length,length_pack,key) \
78
{ if (*(uchar*) (key) != 255) \
79
{ length= (uint) *(uchar*) ((key)++); length_pack= 1; }\
79
{ if (*(unsigned char*) (key) != 255) \
80
{ length= (uint) *(unsigned char*) ((key)++); length_pack= 1; }\
81
82
{ length=mi_uint2korr((key)+1); (key)+= 3; length_pack= 3; } \
106
107
#define clr_rec_bits(bit_ptr, bit_ofs, bit_len) \
107
108
set_rec_bits(0, bit_ptr, bit_ofs, bit_len)
109
extern int ha_compare_text(const CHARSET_INFO * const, uchar *, uint, uchar *, uint, bool, bool);
110
extern int ha_compare_text(const CHARSET_INFO * const, unsigned char *, uint, unsigned char *, uint, bool, bool);
111
extern HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, uchar *a);
112
extern void my_handler_error_register(void);
113
extern void my_handler_error_unregister(void);
114
extern int ha_key_cmp(HA_KEYSEG *keyseg, uchar *a,uchar *b,
115
uint key_length,uint nextflag,uint *diff_length);
112
extern HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, unsigned char *a);
113
void my_handler_error_register(void);
114
void my_handler_error_unregister(void);
115
extern int ha_key_cmp(HA_KEYSEG *keyseg, unsigned char *a,unsigned char *b,
116
uint32_t key_length,uint32_t nextflag,uint32_t *diff_length);
118
119
Inside an in-memory data record, memory pointers to pieces of the