47#define HA_MAX_POSSIBLE_KEY 255
53#define HA_MAX_KEY_LENGTH 1000
54#define HA_MAX_KEY_SEG 16
56#define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24 + 6 + 6)
57#define HA_MAX_KEY_BUFF (HA_MAX_KEY_LENGTH + HA_MAX_KEY_SEG * 6 + 8 + 8)
75 if (**
key != 255)
return *(*key)++;
82 *length_pack = (**
key != 255) ? 1 : 3;
86#define store_key_length_inc(key, length) \
88 if ((length) < 255) { \
89 *(key)++ = (length); \
92 mi_int2store((key) + 1, (length)); \
97#define size_to_store_key_length(length) ((length) < 255 ? 1 : 3)
99#define get_rec_bits(bit_ptr, bit_ofs, bit_len) \
100 (((((uint16)(bit_ptr)[1] << 8) | (uint16)(bit_ptr)[0]) >> (bit_ofs)) & \
101 ((1 << (bit_len)) - 1))
103#define set_rec_bits(bits, bit_ptr, bit_ofs, bit_len) \
105 (bit_ptr)[0] = ((bit_ptr)[0] & ~(((1 << (bit_len)) - 1) << (bit_ofs))) | \
106 ((bits) << (bit_ofs)); \
107 if ((bit_ofs) + (bit_len) > 8) \
109 ((bit_ptr)[1] & ~((1 << ((bit_len)-8 + (bit_ofs))) - 1)) | \
110 ((bits) >> (8 - (bit_ofs))); \
113#define clr_rec_bits(bit_ptr, bit_ofs, bit_len) \
114 set_rec_bits(0, bit_ptr, bit_ofs, bit_len)
117 const uchar *, uint,
bool);
119 uint key_length, uint nextflag, uint *diff_pos);
131 return val1 < val2 ? -1 : (val1 == val2 ? 0 : 1);
A better implementation of the UNIX ctype(3) library.
int ha_key_cmp(const HA_KEYSEG *keyseg, const uchar *a, const uchar *b, uint key_length, uint nextflag, uint *diff_pos)
Definition: my_compare.cc:131
int compare_numbers(T val1, T val2)
Compare two numbers of the same type.
Definition: my_compare.h:130
int ha_compare_text(const CHARSET_INFO *, const uchar *, uint, const uchar *, uint, bool)
Definition: my_compare.cc:46
static uint get_key_pack_length(const uchar **key, uint *length_pack)
Definition: my_compare.h:81
static uint get_key_length(const uchar **key)
Definition: my_compare.h:74
Some integer typedefs for easier portability.
uint8_t uint8
Definition: my_inttypes.h:63
unsigned char uchar
Definition: my_inttypes.h:52
uint16_t uint16
Definition: my_inttypes.h:65
uint32_t uint32
Definition: my_inttypes.h:67
Storing of values in high byte first order.
static uint16 mi_uint2korr(const uchar *A)
Definition: myisampack.h:63
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:76
required string key
Definition: replication_asynchronous_connection_failover.proto:60
Definition: m_ctype.h:421
Definition: my_compare.h:60
uint16 length
Definition: my_compare.h:66
uint32 start
Definition: my_compare.h:62
uint8 null_bit
Definition: my_compare.h:69
const CHARSET_INFO * charset
Definition: my_compare.h:61
uint8 bit_length
Definition: my_compare.h:71
uint16 language
Definition: my_compare.h:67
uint8 bit_end
Definition: my_compare.h:70
uint32 null_pos
Definition: my_compare.h:63
uint16 flag
Definition: my_compare.h:65
uint8 type
Definition: my_compare.h:68
uint16 bit_pos
Definition: my_compare.h:64
uint8 bit_start
Definition: my_compare.h:70