161
158
MY_LEX_STRING_OR_DELIMITER
164
struct charset_info_st;
166
161
/* See strings/charset_info_st.txt for information about this structure */
167
typedef struct my_collation_handler_st
162
struct MY_COLLATION_HANDLER
169
164
bool (*init)(charset_info_st&, unsigned char *(*alloc)(size_t));
170
165
/* Collation routines */
171
int (*strnncoll)(const struct charset_info_st * const,
166
int (*strnncoll)(const charset_info_st*,
172
167
const unsigned char *, size_t, const unsigned char *, size_t, bool);
173
int (*strnncollsp)(const struct charset_info_st * const,
168
int (*strnncollsp)(const charset_info_st*,
174
169
const unsigned char *, size_t, const unsigned char *, size_t,
175
170
bool diff_if_only_endspace_difference);
176
size_t (*strnxfrm)(const struct charset_info_st * const,
171
size_t (*strnxfrm)(const charset_info_st*,
177
172
unsigned char *dst, size_t dstlen, uint32_t nweights,
178
173
const unsigned char *src, size_t srclen, uint32_t flags);
179
size_t (*strnxfrmlen)(const struct charset_info_st * const, size_t);
180
bool (*like_range)(const struct charset_info_st * const,
174
size_t (*strnxfrmlen)(const charset_info_st*, size_t);
175
bool (*like_range)(const charset_info_st*,
181
176
const char *s, size_t s_length,
182
177
char escape, char w_one, char w_many,
183
178
size_t res_length,
184
179
char *min_str, char *max_str,
185
180
size_t *min_len, size_t *max_len);
186
int (*wildcmp)(const struct charset_info_st * const,
181
int (*wildcmp)(const charset_info_st*,
187
182
const char *str,const char *str_end,
188
183
const char *wildstr,const char *wildend,
189
184
int escape,int w_one, int w_many);
191
int (*strcasecmp)(const struct charset_info_st * const, const char *, const char *);
186
int (*strcasecmp)(const charset_info_st*, const char *, const char *);
193
uint32_t (*instr)(const struct charset_info_st * const,
188
uint32_t (*instr)(const charset_info_st*,
194
189
const char *b, size_t b_length,
195
190
const char *s, size_t s_length,
196
191
my_match_t *match, uint32_t nmatch);
198
193
/* Hash calculation */
199
void (*hash_sort)(const struct charset_info_st *cs, const unsigned char *key, size_t len,
194
void (*hash_sort)(const charset_info_st *cs, const unsigned char *key, size_t len,
200
195
uint32_t *nr1, uint32_t *nr2);
201
bool (*propagate)(const struct charset_info_st *cs, const unsigned char *str, size_t len);
202
} MY_COLLATION_HANDLER;
196
bool (*propagate)(const charset_info_st *cs, const unsigned char *str, size_t len);
204
199
/* See strings/charset_info_st.txt about information on this structure */
205
200
typedef struct my_charset_handler_st
207
202
void (*init_unused)();
208
203
/* Multibyte routines */
209
uint32_t (*ismbchar)(const struct charset_info_st * const, const char *, const char *);
210
uint32_t (*mbcharlen)(const struct charset_info_st * const, uint32_t c);
211
size_t (*numchars)(const struct charset_info_st * const, const char *b, const char *e);
212
size_t (*charpos)(const struct charset_info_st * const, const char *b, const char *e,
214
size_t (*well_formed_len)(const struct charset_info_st * const,
215
const char *b,const char *e,
216
size_t nchars, int *error);
217
size_t (*lengthsp)(const struct charset_info_st * const, const char *ptr, size_t length);
218
size_t (*numcells)(const struct charset_info_st * const, const char *b, const char *e);
204
uint32_t (*ismbchar)(const charset_info_st*, const char *, const char *);
205
uint32_t (*mbcharlen)(const charset_info_st*, uint32_t c);
206
size_t (*numchars)(const charset_info_st*, const char *b, const char *e);
207
size_t (*charpos)(const charset_info_st*, const char *b, const char *e, size_t pos);
208
size_t (*well_formed_len)(const charset_info_st&, str_ref, size_t nchars, int *error);
209
size_t (*lengthsp)(const charset_info_st*, const char *ptr, size_t length);
210
size_t (*numcells)(const charset_info_st*, const char *b, const char *e);
220
212
/* Unicode conversion */
221
213
my_charset_conv_mb_wc mb_wc;
222
214
my_charset_conv_wc_mb wc_mb;
224
216
/* CTYPE scanner */
225
int (*ctype)(const struct charset_info_st *cs, int *ctype,
217
int (*ctype)(const charset_info_st *cs, int *ctype,
226
218
const unsigned char *s, const unsigned char *e);
228
220
/* Functions for case and sort conversion */
229
size_t (*caseup_str)(const struct charset_info_st * const, char *);
230
size_t (*casedn_str)(const struct charset_info_st * const, char *);
221
size_t (*caseup_str)(const charset_info_st*, char *);
222
size_t (*casedn_str)(const charset_info_st*, char *);
232
224
my_charset_conv_case caseup;
233
225
my_charset_conv_case casedn;
235
227
/* Charset dependant snprintf() */
236
size_t (*snprintf)(const struct charset_info_st * const, char *to, size_t n,
228
size_t (*snprintf)(const charset_info_st*, char *to, size_t n,
239
231
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
240
232
__attribute__((format(printf, 4, 5)))
243
size_t (*long10_to_str)(const struct charset_info_st * const, char *to, size_t n,
235
size_t (*long10_to_str)(const charset_info_st*, char *to, size_t n,
244
236
int radix, long int val);
245
size_t (*int64_t10_to_str)(const struct charset_info_st * const, char *to, size_t n,
237
size_t (*int64_t10_to_str)(const charset_info_st*, char *to, size_t n,
246
238
int radix, int64_t val);
248
void (*fill)(const struct charset_info_st * const, char *to, size_t len, int fill);
240
void (*fill)(const charset_info_st*, char *to, size_t len, int fill);
250
242
/* String-to-number conversion routines */
251
long (*strntol)(const struct charset_info_st * const, const char *s, size_t l,
252
int base, char **e, int *err);
253
unsigned long (*strntoul)(const struct charset_info_st * const, const char *s, size_t l,
254
int base, char **e, int *err);
255
int64_t (*strntoll)(const struct charset_info_st * const, const char *s, size_t l,
256
int base, char **e, int *err);
257
uint64_t (*strntoull)(const struct charset_info_st * const, const char *s, size_t l,
258
int base, char **e, int *err);
259
double (*strntod)(const struct charset_info_st * const, char *s, size_t l, char **e,
243
long (*strntol)(const charset_info_st*, const char *s, size_t l,
244
int base, char **e, int *err);
245
unsigned long (*strntoul)(const charset_info_st*, const char *s, size_t l,
246
int base, char **e, int *err);
247
int64_t (*strntoll)(const charset_info_st*, const char *s, size_t l,
248
int base, char **e, int *err);
249
uint64_t (*strntoull)(const charset_info_st*, const char *s, size_t l,
250
int base, char **e, int *err);
251
double (*strntod)(const charset_info_st*, char *s, size_t l, char **e,
261
int64_t (*strtoll10)(const struct charset_info_st *cs,
253
int64_t (*strtoll10)(const charset_info_st *cs,
262
254
const char *nptr, char **endptr, int *error);
263
uint64_t (*strntoull10rnd)(const struct charset_info_st *cs,
255
uint64_t (*strntoull10rnd)(const charset_info_st *cs,
264
256
const char *str, size_t length,
266
258
char **endptr, int *error);
267
size_t (*scan)(const struct charset_info_st * const, const char *b, const char *e,
259
size_t (*scan)(const charset_info_st*, const char *b, const char *e,
269
261
} MY_CHARSET_HANDLER;
359
350
DRIZZLED_API const charset_info_st *get_charset_by_csname(const char *cs_name, uint32_t cs_flags);
361
352
/* Functions for 8bit */
362
int my_mb_ctype_8bit(const charset_info_st * const,int *, const unsigned char *,const unsigned char *);
363
int my_mb_ctype_mb(const charset_info_st * const,int *, const unsigned char *,const unsigned char *);
365
size_t my_scan_8bit(const charset_info_st * const cs, const char *b, const char *e, int sq);
367
size_t my_snprintf_8bit(const charset_info_st * const, char *to, size_t n,
353
int my_mb_ctype_8bit(const charset_info_st*,int *, const unsigned char *,const unsigned char *);
354
int my_mb_ctype_mb(const charset_info_st*,int *, const unsigned char *,const unsigned char *);
356
size_t my_scan_8bit(const charset_info_st* cs, const char *b, const char *e, int sq);
358
size_t my_snprintf_8bit(const charset_info_st*, char *to, size_t n,
368
359
const char *fmt, ...)
369
360
__attribute__((format(printf, 4, 5)));
371
long my_strntol_8bit(const charset_info_st * const, const char *s, size_t l, int base,
362
long my_strntol_8bit(const charset_info_st*, const char *s, size_t l, int base,
372
363
char **e, int *err);
373
unsigned long my_strntoul_8bit(const charset_info_st * const, const char *s, size_t l, int base,
375
int64_t my_strntoll_8bit(const charset_info_st * const, const char *s, size_t l, int base,
377
uint64_t my_strntoull_8bit(const charset_info_st * const, const char *s, size_t l, int base,
379
double my_strntod_8bit(const charset_info_st * const, char *s, size_t l,char **e,
364
unsigned long my_strntoul_8bit(const charset_info_st*, const char *s, size_t l, int base,
366
int64_t my_strntoll_8bit(const charset_info_st*, const char *s, size_t l, int base,
368
uint64_t my_strntoull_8bit(const charset_info_st*, const char *s, size_t l, int base,
370
double my_strntod_8bit(const charset_info_st*, char *s, size_t l,char **e,
381
size_t my_long10_to_str_8bit(const charset_info_st * const, char *to, size_t l, int radix,
372
size_t my_long10_to_str_8bit(const charset_info_st*, char *to, size_t l, int radix,
383
size_t my_int64_t10_to_str_8bit(const charset_info_st * const, char *to, size_t l, int radix,
374
size_t my_int64_t10_to_str_8bit(const charset_info_st*, char *to, size_t l, int radix,
385
int64_t my_strtoll10_8bit(const charset_info_st * const cs,
376
int64_t my_strtoll10_8bit(const charset_info_st* cs,
386
377
const char *nptr, char **endptr, int *error);
387
378
int64_t my_strtoll10_ucs2(charset_info_st *cs,
388
379
const char *nptr, char **endptr, int *error);
390
uint64_t my_strntoull10rnd_8bit(const charset_info_st * const cs,
381
uint64_t my_strntoull10rnd_8bit(const charset_info_st* cs,
391
382
const char *str, size_t length, int
392
383
unsigned_fl, char **endptr, int *error);
393
384
uint64_t my_strntoull10rnd_ucs2(charset_info_st *cs,
394
385
const char *str, size_t length,
395
386
int unsigned_fl, char **endptr, int *error);
397
void my_fill_8bit(const charset_info_st * const cs, char* to, size_t l, int fill);
388
void my_fill_8bit(const charset_info_st* cs, char* to, size_t l, int fill);
399
bool my_like_range_simple(const charset_info_st * const cs,
390
bool my_like_range_simple(const charset_info_st* cs,
400
391
const char *ptr, size_t ptr_length,
401
392
char escape, char w_one, char w_many,
402
393
size_t res_length,
403
394
char *min_str, char *max_str,
404
395
size_t *min_length, size_t *max_length);
406
bool my_like_range_mb(const charset_info_st * const cs,
397
bool my_like_range_mb(const charset_info_st* cs,
407
398
const char *ptr, size_t ptr_length,
408
399
char escape, char w_one, char w_many,
409
400
size_t res_length,
410
401
char *min_str, char *max_str,
411
402
size_t *min_length, size_t *max_length);
413
bool my_like_range_ucs2(const charset_info_st * const cs,
404
bool my_like_range_ucs2(const charset_info_st* cs,
414
405
const char *ptr, size_t ptr_length,
415
406
char escape, char w_one, char w_many,
416
407
size_t res_length,
417
408
char *min_str, char *max_str,
418
409
size_t *min_length, size_t *max_length);
420
bool my_like_range_utf16(const charset_info_st * const cs,
421
const char *ptr, size_t ptr_length,
422
char escape, char w_one, char w_many,
424
char *min_str, char *max_str,
425
size_t *min_length, size_t *max_length);
427
bool my_like_range_utf32(const charset_info_st * const cs,
428
const char *ptr, size_t ptr_length,
429
char escape, char w_one, char w_many,
431
char *min_str, char *max_str,
432
size_t *min_length, size_t *max_length);
435
int my_wildcmp_8bit(const charset_info_st * const,
411
bool my_like_range_utf16(const charset_info_st* cs,
412
const char *ptr, size_t ptr_length,
413
char escape, char w_one, char w_many,
415
char *min_str, char *max_str,
416
size_t *min_length, size_t *max_length);
418
bool my_like_range_utf32(const charset_info_st* cs,
419
const char *ptr, size_t ptr_length,
420
char escape, char w_one, char w_many,
422
char *min_str, char *max_str,
423
size_t *min_length, size_t *max_length);
426
int my_wildcmp_8bit(const charset_info_st*,
436
427
const char *str,const char *str_end,
437
428
const char *wildstr,const char *wildend,
438
429
int escape, int w_one, int w_many);
440
int my_wildcmp_bin(const charset_info_st * const,
431
int my_wildcmp_bin(const charset_info_st*,
441
432
const char *str,const char *str_end,
442
433
const char *wildstr,const char *wildend,
443
434
int escape, int w_one, int w_many);
445
size_t my_numchars_8bit(const charset_info_st * const, const char *b, const char *e);
446
size_t my_numcells_8bit(const charset_info_st * const, const char *b, const char *e);
447
size_t my_charpos_8bit(const charset_info_st * const, const char *b, const char *e, size_t pos);
448
size_t my_well_formed_len_8bit(const charset_info_st * const, const char *b, const char *e,
449
size_t pos, int *error);
436
size_t my_numchars_8bit(const charset_info_st*, const char *b, const char *e);
437
size_t my_numcells_8bit(const charset_info_st*, const char *b, const char *e);
438
size_t my_charpos_8bit(const charset_info_st*, const char *b, const char *e, size_t pos);
439
size_t my_well_formed_len_8bit(const charset_info_st&, str_ref, size_t pos, int *error);
450
440
typedef unsigned char *(*cs_alloc_func)(size_t);
451
441
bool my_coll_init_simple(charset_info_st *cs, cs_alloc_func alloc);
452
442
bool my_cset_init_8bit(charset_info_st *cs, cs_alloc_func alloc);
453
uint32_t my_mbcharlen_8bit(const charset_info_st * const, uint32_t c);
443
uint32_t my_mbcharlen_8bit(const charset_info_st*, uint32_t c);
455
445
/* Functions for multibyte charsets */
456
int my_wildcmp_mb(const charset_info_st * const,
446
int my_wildcmp_mb(const charset_info_st*,
457
447
const char *str,const char *str_end,
458
448
const char *wildstr,const char *wildend,
459
449
int escape, int w_one, int w_many);
460
size_t my_numchars_mb(const charset_info_st * const, const char *b, const char *e);
461
size_t my_numcells_mb(const charset_info_st * const, const char *b, const char *e);
462
size_t my_charpos_mb(const charset_info_st * const, const char *b, const char *e, size_t pos);
463
size_t my_well_formed_len_mb(const charset_info_st * const, const char *b, const char *e,
464
size_t pos, int *error);
465
uint32_t my_instr_mb(const charset_info_st * const,
450
size_t my_numchars_mb(const charset_info_st*, const char *b, const char *e);
451
size_t my_numcells_mb(const charset_info_st*, const char *b, const char *e);
452
size_t my_charpos_mb(const charset_info_st*, const char *b, const char *e, size_t pos);
453
size_t my_well_formed_len_mb(const charset_info_st&, str_ref, size_t pos, int *error);
454
uint32_t my_instr_mb(const charset_info_st*,
466
455
const char *b, size_t b_length,
467
456
const char *s, size_t s_length,
468
457
my_match_t *match, uint32_t nmatch);
470
int my_strnncoll_mb_bin(const charset_info_st * const cs,
459
int my_strnncoll_mb_bin(const charset_info_st* cs,
471
460
const unsigned char *s, size_t slen,
472
461
const unsigned char *t, size_t tlen,
473
462
bool t_is_prefix);
475
int my_strnncollsp_mb_bin(const charset_info_st * const cs,
464
int my_strnncollsp_mb_bin(const charset_info_st* cs,
476
465
const unsigned char *a, size_t a_length,
477
466
const unsigned char *b, size_t b_length,
478
467
bool diff_if_only_endspace_difference);
480
int my_wildcmp_mb_bin(const charset_info_st * const cs,
469
int my_wildcmp_mb_bin(const charset_info_st* cs,
481
470
const char *str,const char *str_end,
482
471
const char *wildstr,const char *wildend,
483
472
int escape, int w_one, int w_many);
485
int my_strcasecmp_mb_bin(const charset_info_st * const, const char *s, const char *t);
474
int my_strcasecmp_mb_bin(const charset_info_st*, const char *s, const char *t);
487
void my_hash_sort_mb_bin(const charset_info_st * const,
476
void my_hash_sort_mb_bin(const charset_info_st*,
488
477
const unsigned char *key, size_t len, uint32_t *nr1, uint32_t *nr2);
490
size_t my_strnxfrm_mb(const charset_info_st * const,
479
size_t my_strnxfrm_mb(const charset_info_st*,
491
480
unsigned char *dst, size_t dstlen, uint32_t nweights,
492
481
const unsigned char *src, size_t srclen, uint32_t flags);
494
int my_wildcmp_unicode(const charset_info_st * const cs,
483
int my_wildcmp_unicode(const charset_info_st* cs,
495
484
const char *str, const char *str_end,
496
485
const char *wildstr, const char *wildend,
497
486
int escape, int w_one, int w_many,
498
487
MY_UNICASE_INFO **weights);
500
bool my_propagate_simple(const charset_info_st * const cs, const unsigned char *str, size_t len);
501
bool my_propagate_complex(const charset_info_st * const cs, const unsigned char *str, size_t len);
489
bool my_propagate_simple(const charset_info_st* cs, const unsigned char *str, size_t len);
490
bool my_propagate_complex(const charset_info_st* cs, const unsigned char *str, size_t len);
504
493
uint32_t my_strxfrm_flag_normalize(uint32_t flags, uint32_t nlevels);
505
494
void my_strxfrm_desc_and_reverse(unsigned char *str, unsigned char *strend,
506
495
uint32_t flags, uint32_t level);
507
size_t my_strxfrm_pad_desc_and_reverse(const charset_info_st * const cs,
496
size_t my_strxfrm_pad_desc_and_reverse(const charset_info_st* cs,
508
497
unsigned char *str, unsigned char *frmend, unsigned char *strend,
509
498
uint32_t nweights, uint32_t flags, uint32_t level);
511
bool my_charset_is_ascii_compatible(const charset_info_st * const cs);
500
bool my_charset_is_ascii_compatible(const charset_info_st* cs);
514
503
Compare 0-terminated UTF8 strings.
526
515
- positive number if s > t
527
516
- 0 is the strings are equal
529
int my_wc_mb_filename(const charset_info_st * const,
518
int my_wc_mb_filename(const charset_info_st*,
530
519
my_wc_t wc, unsigned char *s, unsigned char *e);
532
int my_mb_wc_filename(const charset_info_st * const,
521
int my_mb_wc_filename(const charset_info_st*,
533
522
my_wc_t *pwc, const unsigned char *s, const unsigned char *e);
536
unsigned int my_ismbchar_utf8mb4(const charset_info_st * const cs, const char *b, const char *e);
537
unsigned int my_mbcharlen_utf8mb4(const charset_info_st * const, uint32_t c);
525
unsigned int my_ismbchar_utf8mb4(const charset_info_st* cs, const char *b, const char *e);
526
unsigned int my_mbcharlen_utf8mb4(const charset_info_st*, uint32_t c);
539
size_t my_strnxfrmlen_utf8mb4(const charset_info_st * const, size_t len);
528
size_t my_strnxfrmlen_utf8mb4(const charset_info_st*, size_t len);
541
my_strnxfrm_utf8mb4(const charset_info_st * const cs,
530
my_strnxfrm_utf8mb4(const charset_info_st* cs,
542
531
unsigned char *dst, size_t dstlen, uint32_t nweights,
543
532
const unsigned char *src, size_t srclen, uint32_t flags);
545
int my_wildcmp_utf8mb4(const charset_info_st * const cs,
534
int my_wildcmp_utf8mb4(const charset_info_st* cs,
546
535
const char *str, const char *strend,
547
536
const char *wildstr, const char *wildend,
548
537
int escape, int w_one, int w_many);
549
int my_strnncollsp_utf8mb4(const charset_info_st * const cs,
538
int my_strnncollsp_utf8mb4(const charset_info_st* cs,
550
539
const unsigned char *s, size_t slen,
551
540
const unsigned char *t, size_t tlen,
552
541
bool diff_if_only_endspace_difference);
553
int my_strcasecmp_utf8mb4(const charset_info_st * const cs,
542
int my_strcasecmp_utf8mb4(const charset_info_st* cs,
554
543
const char *s, const char *t);
556
int my_strnncoll_utf8mb4(const charset_info_st * const cs,
545
int my_strnncoll_utf8mb4(const charset_info_st* cs,
557
546
const unsigned char *s, size_t slen,
558
547
const unsigned char *t, size_t tlen,
559
548
bool t_is_prefix);
561
int my_mb_wc_utf8mb4(const charset_info_st * const cs,
550
int my_mb_wc_utf8mb4(const charset_info_st* cs,
562
551
my_wc_t * pwc, const unsigned char *s, const unsigned char *e);
564
int my_wc_mb_utf8mb4(const charset_info_st * const cs,
553
int my_wc_mb_utf8mb4(const charset_info_st* cs,
565
554
my_wc_t wc, unsigned char *r, unsigned char *e);
567
size_t my_caseup_str_utf8mb4(const charset_info_st * const cs, char *src);
568
size_t my_casedn_str_utf8mb4(const charset_info_st * const cs, char *src);
556
size_t my_caseup_str_utf8mb4(const charset_info_st* cs, char *src);
557
size_t my_casedn_str_utf8mb4(const charset_info_st* cs, char *src);
570
size_t my_caseup_utf8mb4(const charset_info_st * const cs, char *src, size_t srclen,
559
size_t my_caseup_utf8mb4(const charset_info_st* cs, char *src, size_t srclen,
571
560
char *dst, size_t dstlen);
572
size_t my_casedn_utf8mb4(const charset_info_st * const cs,
561
size_t my_casedn_utf8mb4(const charset_info_st* cs,
573
562
char *src, size_t srclen,
574
563
char *dst, size_t dstlen);
577
int my_strnncoll_any_uca(const charset_info_st * const cs,
566
int my_strnncoll_any_uca(const charset_info_st* cs,
578
567
const unsigned char *s, size_t slen,
579
568
const unsigned char *t, size_t tlen,
580
569
bool t_is_prefix);
582
int my_strnncollsp_any_uca(const charset_info_st * const cs,
571
int my_strnncollsp_any_uca(const charset_info_st* cs,
583
572
const unsigned char *s, size_t slen,
584
573
const unsigned char *t, size_t tlen,
585
574
bool diff_if_only_endspace_difference);
587
void my_hash_sort_any_uca(const charset_info_st * const cs,
576
void my_hash_sort_any_uca(const charset_info_st* cs,
588
577
const unsigned char *s, size_t slen,
589
578
uint32_t *n1, uint32_t *n2);
591
size_t my_strnxfrm_any_uca(const charset_info_st * const cs,
580
size_t my_strnxfrm_any_uca(const charset_info_st* cs,
592
581
unsigned char *dst, size_t dstlen, uint32_t nweights,
593
582
const unsigned char *src, size_t srclen,
596
int my_wildcmp_uca(const charset_info_st * const cs,
585
int my_wildcmp_uca(const charset_info_st* cs,
597
586
const char *str,const char *str_end,
598
587
const char *wildstr,const char *wildend,
599
588
int escape, int w_one, int w_many);
601
int my_strnncoll_8bit_bin(const charset_info_st * const,
590
int my_strnncoll_8bit_bin(const charset_info_st*,
602
591
const unsigned char *s, size_t slen,
603
592
const unsigned char *t, size_t tlen,
604
593
bool t_is_prefix);
605
int my_strnncollsp_8bit_bin(const charset_info_st * const,
594
int my_strnncollsp_8bit_bin(const charset_info_st*,
606
595
const unsigned char *a, size_t a_length,
607
596
const unsigned char *b, size_t b_length,
608
597
bool diff_if_only_endspace_difference);
609
size_t my_case_str_bin(const charset_info_st * const, char *);
610
size_t my_case_bin(const charset_info_st * const, char *,
598
size_t my_case_str_bin(const charset_info_st*, char *);
599
size_t my_case_bin(const charset_info_st*, char *,
611
600
size_t srclen, char *, size_t);
612
int my_strcasecmp_bin(const charset_info_st * const,
601
int my_strcasecmp_bin(const charset_info_st*,
613
602
const char *s, const char *t);
614
size_t my_strnxfrm_8bit_bin(const charset_info_st * const cs,
603
size_t my_strnxfrm_8bit_bin(const charset_info_st* cs,
615
604
unsigned char * dst, size_t dstlen, uint32_t nweights,
616
605
const unsigned char *src, size_t srclen, uint32_t flags);
617
uint32_t my_instr_bin(const charset_info_st * const,
606
uint32_t my_instr_bin(const charset_info_st*,
618
607
const char *b, size_t b_length,
619
608
const char *s, size_t s_length,
620
609
my_match_t *match, uint32_t nmatch);
621
size_t my_lengthsp_binary(const charset_info_st * const,
610
size_t my_lengthsp_binary(const charset_info_st*,
622
611
const char *, size_t length);
623
int my_mb_wc_bin(const charset_info_st * const,
612
int my_mb_wc_bin(const charset_info_st*,
624
613
my_wc_t *wc, const unsigned char *str,
625
614
const unsigned char *end);
626
int my_wc_mb_bin(const charset_info_st * const, my_wc_t wc,
615
int my_wc_mb_bin(const charset_info_st*, my_wc_t wc,
627
616
unsigned char *str, unsigned char *end);
628
void my_hash_sort_8bit_bin(const charset_info_st * const,
617
void my_hash_sort_8bit_bin(const charset_info_st*,
629
618
const unsigned char *key, size_t len,
630
619
uint32_t *nr1, uint32_t *nr2);
631
620
bool my_coll_init_8bit_bin(charset_info_st *cs,
633
int my_strnncoll_binary(const charset_info_st * const,
622
int my_strnncoll_binary(const charset_info_st*,
634
623
const unsigned char *s, size_t slen,
635
624
const unsigned char *t, size_t tlen,
636
625
bool t_is_prefix);
637
int my_strnncollsp_binary(const charset_info_st * const cs,
626
int my_strnncollsp_binary(const charset_info_st* cs,
638
627
const unsigned char *s, size_t slen,
639
628
const unsigned char *t, size_t tlen,