19
19
The bytes are compare as unsigned chars.
23
#include "drizzled/internal/my_sys.h"
27
#include "plugin/myisam/myisampack.h"
34
static int ptr_compare(size_t *compare_length, unsigned char **a, unsigned char **b);
35
static int ptr_compare_0(size_t *compare_length, unsigned char **a, unsigned char **b);
36
static int ptr_compare_1(size_t *compare_length, unsigned char **a, unsigned char **b);
37
static int ptr_compare_2(size_t *compare_length, unsigned char **a, unsigned char **b);
38
static int ptr_compare_3(size_t *compare_length, unsigned char **a, unsigned char **b);
22
#include "mysys_priv.h"
23
#include <myisampack.h>
25
static int ptr_compare(size_t *compare_length, uchar **a, uchar **b);
26
static int ptr_compare_0(size_t *compare_length, uchar **a, uchar **b);
27
static int ptr_compare_1(size_t *compare_length, uchar **a, uchar **b);
28
static int ptr_compare_2(size_t *compare_length, uchar **a, uchar **b);
29
static int ptr_compare_3(size_t *compare_length, uchar **a, uchar **b);
40
31
/* Get a pointer to a optimal byte-compare function for a given size */
61
52
#define cmp(N) if (first[N] != last[N]) return (int) first[N] - (int) last[N]
63
static int ptr_compare(size_t *compare_length, unsigned char **a, unsigned char **b)
54
static int ptr_compare(size_t *compare_length, uchar **a, uchar **b)
65
56
register int length= *compare_length;
66
register unsigned char *first,*last;
57
register uchar *first,*last;
68
59
first= *a; last= *b;
78
static int ptr_compare_0(size_t *compare_length,unsigned char **a, unsigned char **b)
69
static int ptr_compare_0(size_t *compare_length,uchar **a, uchar **b)
80
71
register int length= *compare_length;
81
register unsigned char *first,*last;
72
register uchar *first,*last;
83
74
first= *a; last= *b;
99
static int ptr_compare_1(size_t *compare_length,unsigned char **a, unsigned char **b)
90
static int ptr_compare_1(size_t *compare_length,uchar **a, uchar **b)
101
92
register int length= *compare_length-1;
102
register unsigned char *first,*last;
93
register uchar *first,*last;
104
95
first= *a+1; last= *b+1;
120
static int ptr_compare_2(size_t *compare_length,unsigned char **a, unsigned char **b)
111
static int ptr_compare_2(size_t *compare_length,uchar **a, uchar **b)
122
113
register int length= *compare_length-2;
123
register unsigned char *first,*last;
114
register uchar *first,*last;
125
116
first= *a +2 ; last= *b +2;
142
static int ptr_compare_3(size_t *compare_length,unsigned char **a, unsigned char **b)
133
static int ptr_compare_3(size_t *compare_length,uchar **a, uchar **b)
144
135
register int length= *compare_length-3;
145
register unsigned char *first,*last;
136
register uchar *first,*last;
147
138
first= *a +3 ; last= *b +3;
174
165
case 4: mi_int4store(buff,pos); break;
175
166
case 3: mi_int3store(buff,pos); break;
176
167
case 2: mi_int2store(buff,pos); break;
177
case 1: buff[0]= (unsigned char) pos; break;
168
case 1: buff[0]= (uchar) pos; break;
169
default: DBUG_ASSERT(0);
183
my_off_t my_get_ptr(unsigned char *ptr, size_t pack_length)
174
my_off_t my_get_ptr(uchar *ptr, size_t pack_length)
186
177
switch (pack_length) {
193
184
case 4: pos= (my_off_t) mi_uint4korr(ptr); break;
194
185
case 3: pos= (my_off_t) mi_uint3korr(ptr); break;
195
186
case 2: pos= (my_off_t) mi_uint2korr(ptr); break;
196
case 1: pos= (my_off_t) *(unsigned char*) ptr; break;
197
default: assert(0); return 0;
187
case 1: pos= (my_off_t) *(uchar*) ptr; break;
188
default: DBUG_ASSERT(0); return 0;
202
} /* namespace internal */
203
} /* namespace drizzled */