~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/charset_info.h

  • Committer: Andrew Hutchings
  • Date: 2011-03-29 20:45:43 UTC
  • mfrom: (2257 drizzle)
  • mto: (2257.1.3 build)
  • mto: This revision was merged to the branch mainline in revision 2258.
  • Revision ID: andrew@linuxjedi.co.uk-20110329204543-ssex0nuo8knncgwx
Merge with trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
159
159
struct charset_info_st;
160
160
 
161
161
 
162
 
/* See strings/CHARSET_INFO.txt for information about this structure  */
 
162
/* See strings/charset_info_st.txt for information about this structure  */
163
163
typedef struct my_collation_handler_st
164
164
{
165
165
  bool (*init)(struct charset_info_st *, unsigned char *(*alloc)(size_t));
210
210
                                       char *, size_t, char *, size_t);
211
211
 
212
212
 
213
 
/* See strings/CHARSET_INFO.txt about information on this structure  */
 
213
/* See strings/charset_info_st.txt about information on this structure  */
214
214
typedef struct my_charset_handler_st
215
215
{
216
216
  bool (*init)(struct charset_info_st *, unsigned char *(*alloc)(size_t));
281
281
extern MY_CHARSET_HANDLER my_charset_ucs2_handler;
282
282
 
283
283
 
284
 
/* See strings/CHARSET_INFO.txt about information on this structure  */
285
 
typedef struct charset_info_st
 
284
/* See strings/charset_info_st.txt about information on this structure  */
 
285
struct charset_info_st
286
286
{
287
287
  uint32_t      number;
288
288
  uint32_t      primary_number;
318
318
  MY_CHARSET_HANDLER *cset;
319
319
  MY_COLLATION_HANDLER *coll;
320
320
 
321
 
} CHARSET_INFO;
 
321
};
322
322
 
323
323
#define ILLEGAL_CHARSET_INFO_NUMBER (UINT32_MAX)
324
324
 
325
325
 
326
 
extern DRIZZLED_API CHARSET_INFO my_charset_bin;
327
 
extern DRIZZLED_API CHARSET_INFO my_charset_utf8mb4_bin;
328
 
extern DRIZZLED_API CHARSET_INFO my_charset_utf8mb4_general_ci;
329
 
extern DRIZZLED_API CHARSET_INFO my_charset_utf8mb4_unicode_ci;
 
326
extern DRIZZLED_API charset_info_st my_charset_bin;
 
327
extern DRIZZLED_API charset_info_st my_charset_utf8mb4_bin;
 
328
extern DRIZZLED_API charset_info_st my_charset_utf8mb4_general_ci;
 
329
extern DRIZZLED_API charset_info_st my_charset_utf8mb4_unicode_ci;
330
330
 
331
331
#define MY_UTF8MB4                 "utf8"
332
332
#define my_charset_utf8_general_ci ::drizzled::my_charset_utf8mb4_general_ci
334
334
 
335
335
 
336
336
/* declarations for simple charsets */
337
 
size_t my_strnxfrmlen_simple(const CHARSET_INFO * const, size_t);
 
337
size_t my_strnxfrmlen_simple(const charset_info_st * const, size_t);
338
338
 
339
 
extern int  my_strnncollsp_simple(const CHARSET_INFO * const, const unsigned char *, size_t,
 
339
extern int  my_strnncollsp_simple(const charset_info_st * const, const unsigned char *, size_t,
340
340
                                  const unsigned char *, size_t,
341
341
                                  bool diff_if_only_endspace_difference);
342
342
 
343
 
extern size_t my_lengthsp_8bit(const CHARSET_INFO * const cs, const char *ptr, size_t length);
 
343
extern size_t my_lengthsp_8bit(const charset_info_st * const cs, const char *ptr, size_t length);
344
344
 
345
 
extern uint32_t my_instr_simple(const CHARSET_INFO * const,
 
345
extern uint32_t my_instr_simple(const charset_info_st * const,
346
346
                            const char *b, size_t b_length,
347
347
                            const char *s, size_t s_length,
348
348
                            my_match_t *match, uint32_t nmatch);
349
349
 
350
350
 
351
351
/* Functions for 8bit */
352
 
int my_mb_ctype_8bit(const CHARSET_INFO * const,int *, const unsigned char *,const unsigned char *);
353
 
int my_mb_ctype_mb(const CHARSET_INFO * const,int *, const unsigned char *,const unsigned char *);
354
 
 
355
 
size_t my_scan_8bit(const CHARSET_INFO * const cs, const char *b, const char *e, int sq);
356
 
 
357
 
size_t my_snprintf_8bit(const CHARSET_INFO * const, char *to, size_t n,
 
352
int my_mb_ctype_8bit(const charset_info_st * const,int *, const unsigned char *,const unsigned char *);
 
353
int my_mb_ctype_mb(const charset_info_st * const,int *, const unsigned char *,const unsigned char *);
 
354
 
 
355
size_t my_scan_8bit(const charset_info_st * const cs, const char *b, const char *e, int sq);
 
356
 
 
357
size_t my_snprintf_8bit(const charset_info_st * const, char *to, size_t n,
358
358
                        const char *fmt, ...)
359
359
  __attribute__((format(printf, 4, 5)));
360
360
 
361
 
long       my_strntol_8bit(const CHARSET_INFO * const, const char *s, size_t l, int base,
 
361
long       my_strntol_8bit(const charset_info_st * const, const char *s, size_t l, int base,
362
362
                           char **e, int *err);
363
 
unsigned long      my_strntoul_8bit(const CHARSET_INFO * const, const char *s, size_t l, int base,
364
 
                            char **e, int *err);
365
 
int64_t   my_strntoll_8bit(const CHARSET_INFO * const, const char *s, size_t l, int base,
366
 
                            char **e, int *err);
367
 
uint64_t my_strntoull_8bit(const CHARSET_INFO * const, const char *s, size_t l, int base,
368
 
                            char **e, int *err);
369
 
double      my_strntod_8bit(const CHARSET_INFO * const, char *s, size_t l,char **e,
 
363
unsigned long      my_strntoul_8bit(const charset_info_st * const, const char *s, size_t l, int base,
 
364
                            char **e, int *err);
 
365
int64_t   my_strntoll_8bit(const charset_info_st * const, const char *s, size_t l, int base,
 
366
                            char **e, int *err);
 
367
uint64_t my_strntoull_8bit(const charset_info_st * const, const char *s, size_t l, int base,
 
368
                            char **e, int *err);
 
369
double      my_strntod_8bit(const charset_info_st * const, char *s, size_t l,char **e,
370
370
                            int *err);
371
 
size_t my_long10_to_str_8bit(const CHARSET_INFO * const, char *to, size_t l, int radix,
 
371
size_t my_long10_to_str_8bit(const charset_info_st * const, char *to, size_t l, int radix,
372
372
                             long int val);
373
 
size_t my_int64_t10_to_str_8bit(const CHARSET_INFO * const, char *to, size_t l, int radix,
 
373
size_t my_int64_t10_to_str_8bit(const charset_info_st * const, char *to, size_t l, int radix,
374
374
                                 int64_t val);
375
375
 
376
 
int64_t my_strtoll10_8bit(const CHARSET_INFO * const cs,
 
376
int64_t my_strtoll10_8bit(const charset_info_st * const cs,
377
377
                           const char *nptr, char **endptr, int *error);
378
 
int64_t my_strtoll10_ucs2(CHARSET_INFO *cs,
 
378
int64_t my_strtoll10_ucs2(charset_info_st *cs,
379
379
                           const char *nptr, char **endptr, int *error);
380
380
 
381
 
uint64_t my_strntoull10rnd_8bit(const CHARSET_INFO * const cs,
 
381
uint64_t my_strntoull10rnd_8bit(const charset_info_st * const cs,
382
382
                                 const char *str, size_t length, int
383
383
                                 unsigned_fl, char **endptr, int *error);
384
 
uint64_t my_strntoull10rnd_ucs2(CHARSET_INFO *cs,
 
384
uint64_t my_strntoull10rnd_ucs2(charset_info_st *cs,
385
385
                                 const char *str, size_t length,
386
386
                                 int unsigned_fl, char **endptr, int *error);
387
387
 
388
 
void my_fill_8bit(const CHARSET_INFO * const cs, char* to, size_t l, int fill);
 
388
void my_fill_8bit(const charset_info_st * const cs, char* to, size_t l, int fill);
389
389
 
390
 
bool  my_like_range_simple(const CHARSET_INFO * const cs,
 
390
bool  my_like_range_simple(const charset_info_st * const cs,
391
391
                              const char *ptr, size_t ptr_length,
392
392
                              char escape, char w_one, char w_many,
393
393
                              size_t res_length,
394
394
                              char *min_str, char *max_str,
395
395
                              size_t *min_length, size_t *max_length);
396
396
 
397
 
bool  my_like_range_mb(const CHARSET_INFO * const cs,
 
397
bool  my_like_range_mb(const charset_info_st * const cs,
398
398
                          const char *ptr, size_t ptr_length,
399
399
                          char escape, char w_one, char w_many,
400
400
                          size_t res_length,
401
401
                          char *min_str, char *max_str,
402
402
                          size_t *min_length, size_t *max_length);
403
403
 
404
 
bool  my_like_range_ucs2(const CHARSET_INFO * const cs,
 
404
bool  my_like_range_ucs2(const charset_info_st * const cs,
405
405
                            const char *ptr, size_t ptr_length,
406
406
                            char escape, char w_one, char w_many,
407
407
                            size_t res_length,
408
408
                            char *min_str, char *max_str,
409
409
                            size_t *min_length, size_t *max_length);
410
410
 
411
 
bool  my_like_range_utf16(const CHARSET_INFO * const cs,
412
 
                             const char *ptr, size_t ptr_length,
413
 
                             char escape, char w_one, char w_many,
414
 
                             size_t res_length,
415
 
                             char *min_str, char *max_str,
416
 
                             size_t *min_length, size_t *max_length);
417
 
 
418
 
bool  my_like_range_utf32(const CHARSET_INFO * const cs,
419
 
                             const char *ptr, size_t ptr_length,
420
 
                             char escape, char w_one, char w_many,
421
 
                             size_t res_length,
422
 
                             char *min_str, char *max_str,
423
 
                             size_t *min_length, size_t *max_length);
424
 
 
425
 
 
426
 
int my_wildcmp_8bit(const CHARSET_INFO * const,
 
411
bool  my_like_range_utf16(const charset_info_st * const cs,
 
412
                             const char *ptr, size_t ptr_length,
 
413
                             char escape, char w_one, char w_many,
 
414
                             size_t res_length,
 
415
                             char *min_str, char *max_str,
 
416
                             size_t *min_length, size_t *max_length);
 
417
 
 
418
bool  my_like_range_utf32(const charset_info_st * const cs,
 
419
                             const char *ptr, size_t ptr_length,
 
420
                             char escape, char w_one, char w_many,
 
421
                             size_t res_length,
 
422
                             char *min_str, char *max_str,
 
423
                             size_t *min_length, size_t *max_length);
 
424
 
 
425
 
 
426
int my_wildcmp_8bit(const charset_info_st * const,
427
427
                    const char *str,const char *str_end,
428
428
                    const char *wildstr,const char *wildend,
429
429
                    int escape, int w_one, int w_many);
430
430
 
431
 
int my_wildcmp_bin(const CHARSET_INFO * const,
 
431
int my_wildcmp_bin(const charset_info_st * const,
432
432
                   const char *str,const char *str_end,
433
433
                   const char *wildstr,const char *wildend,
434
434
                   int escape, int w_one, int w_many);
435
435
 
436
 
size_t my_numchars_8bit(const CHARSET_INFO * const, const char *b, const char *e);
437
 
size_t my_numcells_8bit(const CHARSET_INFO * const, const char *b, const char *e);
438
 
size_t my_charpos_8bit(const CHARSET_INFO * const, const char *b, const char *e, size_t pos);
439
 
size_t my_well_formed_len_8bit(const CHARSET_INFO * const, const char *b, const char *e,
 
436
size_t my_numchars_8bit(const charset_info_st * const, const char *b, const char *e);
 
437
size_t my_numcells_8bit(const charset_info_st * const, const char *b, const char *e);
 
438
size_t my_charpos_8bit(const charset_info_st * const, const char *b, const char *e, size_t pos);
 
439
size_t my_well_formed_len_8bit(const charset_info_st * const, const char *b, const char *e,
440
440
                             size_t pos, int *error);
441
441
typedef unsigned char *(*cs_alloc_func)(size_t);
442
 
bool my_coll_init_simple(CHARSET_INFO *cs, cs_alloc_func alloc);
443
 
bool my_cset_init_8bit(CHARSET_INFO *cs, cs_alloc_func alloc);
444
 
uint32_t my_mbcharlen_8bit(const CHARSET_INFO * const, uint32_t c);
 
442
bool my_coll_init_simple(charset_info_st *cs, cs_alloc_func alloc);
 
443
bool my_cset_init_8bit(charset_info_st *cs, cs_alloc_func alloc);
 
444
uint32_t my_mbcharlen_8bit(const charset_info_st * const, uint32_t c);
445
445
 
446
446
 
447
447
/* Functions for multibyte charsets */
448
 
extern size_t my_caseup_str_mb(const CHARSET_INFO * const, char *);
449
 
extern size_t my_casedn_str_mb(const CHARSET_INFO * const, char *);
450
 
extern size_t my_caseup_mb(const CHARSET_INFO * const, char *src, size_t srclen,
451
 
                                         char *dst, size_t dstlen);
452
 
extern size_t my_casedn_mb(const CHARSET_INFO * const, char *src, size_t srclen,
453
 
                                         char *dst, size_t dstlen);
454
 
extern int my_strcasecmp_mb(const CHARSET_INFO * const  cs, const char *s, const char *t);
 
448
extern size_t my_caseup_str_mb(const charset_info_st * const, char *);
 
449
extern size_t my_casedn_str_mb(const charset_info_st * const, char *);
 
450
extern size_t my_caseup_mb(const charset_info_st * const, char *src, size_t srclen,
 
451
                                         char *dst, size_t dstlen);
 
452
extern size_t my_casedn_mb(const charset_info_st * const, char *src, size_t srclen,
 
453
                                         char *dst, size_t dstlen);
 
454
extern int my_strcasecmp_mb(const charset_info_st * const  cs, const char *s, const char *t);
455
455
 
456
 
int my_wildcmp_mb(const CHARSET_INFO * const,
 
456
int my_wildcmp_mb(const charset_info_st * const,
457
457
                  const char *str,const char *str_end,
458
458
                  const char *wildstr,const char *wildend,
459
459
                  int escape, int w_one, int w_many);
460
 
size_t my_numchars_mb(const CHARSET_INFO * const, const char *b, const char *e);
461
 
size_t my_numcells_mb(const CHARSET_INFO * const, const char *b, const char *e);
462
 
size_t my_charpos_mb(const CHARSET_INFO * const, const char *b, const char *e, size_t pos);
463
 
size_t my_well_formed_len_mb(const CHARSET_INFO * const, const char *b, const char *e,
 
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
464
                             size_t pos, int *error);
465
 
uint32_t my_instr_mb(const CHARSET_INFO * const,
 
465
uint32_t my_instr_mb(const charset_info_st * const,
466
466
                 const char *b, size_t b_length,
467
467
                 const char *s, size_t s_length,
468
468
                 my_match_t *match, uint32_t nmatch);
469
469
 
470
 
int my_strnncoll_mb_bin(const CHARSET_INFO * const  cs,
 
470
int my_strnncoll_mb_bin(const charset_info_st * const  cs,
471
471
                        const unsigned char *s, size_t slen,
472
472
                        const unsigned char *t, size_t tlen,
473
473
                        bool t_is_prefix);
474
474
 
475
 
int my_strnncollsp_mb_bin(const CHARSET_INFO * const cs,
 
475
int my_strnncollsp_mb_bin(const charset_info_st * const cs,
476
476
                          const unsigned char *a, size_t a_length,
477
477
                          const unsigned char *b, size_t b_length,
478
478
                          bool diff_if_only_endspace_difference);
479
479
 
480
 
int my_wildcmp_mb_bin(const CHARSET_INFO * const cs,
 
480
int my_wildcmp_mb_bin(const charset_info_st * const cs,
481
481
                      const char *str,const char *str_end,
482
482
                      const char *wildstr,const char *wildend,
483
483
                      int escape, int w_one, int w_many);
484
484
 
485
 
int my_strcasecmp_mb_bin(const CHARSET_INFO * const, const char *s, const char *t);
 
485
int my_strcasecmp_mb_bin(const charset_info_st * const, const char *s, const char *t);
486
486
 
487
 
void my_hash_sort_mb_bin(const CHARSET_INFO * const,
 
487
void my_hash_sort_mb_bin(const charset_info_st * const,
488
488
                         const unsigned char *key, size_t len, uint32_t *nr1, uint32_t *nr2);
489
489
 
490
 
size_t my_strnxfrm_mb(const CHARSET_INFO * const,
 
490
size_t my_strnxfrm_mb(const charset_info_st * const,
491
491
                      unsigned char *dst, size_t dstlen, uint32_t nweights,
492
492
                      const unsigned char *src, size_t srclen, uint32_t flags);
493
493
 
494
 
int my_wildcmp_unicode(const CHARSET_INFO * const cs,
 
494
int my_wildcmp_unicode(const charset_info_st * const cs,
495
495
                       const char *str, const char *str_end,
496
496
                       const char *wildstr, const char *wildend,
497
497
                       int escape, int w_one, int w_many,
498
498
                       MY_UNICASE_INFO **weights);
499
499
 
500
500
extern bool my_parse_charset_xml(const char *bug, size_t len,
501
 
                                    int (*add)(CHARSET_INFO *cs));
 
501
                                    int (*add)(charset_info_st *cs));
502
502
 
503
 
bool my_propagate_simple(const CHARSET_INFO * const cs, const unsigned char *str, size_t len);
504
 
bool my_propagate_complex(const CHARSET_INFO * const cs, const unsigned char *str, size_t len);
 
503
bool my_propagate_simple(const charset_info_st * const cs, const unsigned char *str, size_t len);
 
504
bool my_propagate_complex(const charset_info_st * const cs, const unsigned char *str, size_t len);
505
505
 
506
506
 
507
507
uint32_t my_strxfrm_flag_normalize(uint32_t flags, uint32_t nlevels);
508
508
void my_strxfrm_desc_and_reverse(unsigned char *str, unsigned char *strend,
509
509
                                 uint32_t flags, uint32_t level);
510
 
size_t my_strxfrm_pad_desc_and_reverse(const CHARSET_INFO * const cs,
 
510
size_t my_strxfrm_pad_desc_and_reverse(const charset_info_st * const cs,
511
511
                                       unsigned char *str, unsigned char *frmend, unsigned char *strend,
512
512
                                       uint32_t nweights, uint32_t flags, uint32_t level);
513
513
 
514
 
bool my_charset_is_ascii_compatible(const CHARSET_INFO * const cs);
 
514
bool my_charset_is_ascii_compatible(const charset_info_st * const cs);
515
515
 
516
516
/*
517
517
  Compare 0-terminated UTF8 strings.
530
530
    - 0 is the strings are equal
531
531
*/
532
532
int
533
 
my_wc_mb_filename(const CHARSET_INFO * const,
 
533
my_wc_mb_filename(const charset_info_st * const,
534
534
                  my_wc_t wc, unsigned char *s, unsigned char *e);
535
535
 
536
536
int
537
 
my_mb_wc_filename(const CHARSET_INFO * const,
 
537
my_mb_wc_filename(const charset_info_st * const,
538
538
                  my_wc_t *pwc, const unsigned char *s, const unsigned char *e);
539
539
 
540
540
 
541
 
unsigned int my_ismbchar_utf8mb4(const CHARSET_INFO * const cs,                                  const char *b, const char *e);
542
 
unsigned int my_mbcharlen_utf8mb4(const CHARSET_INFO * const, uint32_t c);
 
541
unsigned int my_ismbchar_utf8mb4(const charset_info_st * const cs,                                  const char *b, const char *e);
 
542
unsigned int my_mbcharlen_utf8mb4(const charset_info_st * const, uint32_t c);
543
543
 
544
 
size_t my_strnxfrmlen_utf8mb4(const CHARSET_INFO * const, size_t len);
 
544
size_t my_strnxfrmlen_utf8mb4(const charset_info_st * const, size_t len);
545
545
size_t
546
 
my_strnxfrm_utf8mb4(const CHARSET_INFO * const cs,
 
546
my_strnxfrm_utf8mb4(const charset_info_st * const cs,
547
547
                    unsigned char *dst, size_t dstlen, uint32_t nweights,
548
548
                    const unsigned char *src, size_t srclen, uint32_t flags);
549
549
 
550
550
int
551
 
my_wildcmp_utf8mb4(const CHARSET_INFO * const cs,
 
551
my_wildcmp_utf8mb4(const charset_info_st * const cs,
552
552
                   const char *str, const char *strend,
553
553
                   const char *wildstr, const char *wildend,
554
554
                   int escape, int w_one, int w_many);
555
555
int
556
 
my_strnncollsp_utf8mb4(const CHARSET_INFO * const cs,
 
556
my_strnncollsp_utf8mb4(const charset_info_st * const cs,
557
557
                       const unsigned char *s, size_t slen,
558
558
                       const unsigned char *t, size_t tlen,
559
559
                       bool diff_if_only_endspace_difference);
560
 
int my_strcasecmp_utf8mb4(const CHARSET_INFO * const cs,
 
560
int my_strcasecmp_utf8mb4(const charset_info_st * const cs,
561
561
                          const char *s, const char *t);
562
562
 
563
563
int
564
 
my_strnncoll_utf8mb4(const CHARSET_INFO * const cs,
 
564
my_strnncoll_utf8mb4(const charset_info_st * const cs,
565
565
                     const unsigned char *s, size_t slen,
566
566
                     const unsigned char *t, size_t tlen,
567
567
                     bool t_is_prefix);
568
568
 
569
569
int
570
 
my_mb_wc_utf8mb4(const CHARSET_INFO * const cs,
 
570
my_mb_wc_utf8mb4(const charset_info_st * const cs,
571
571
                 my_wc_t * pwc, const unsigned char *s, const unsigned char *e);
572
572
 
573
573
int
574
 
my_wc_mb_utf8mb4(const CHARSET_INFO * const cs,
 
574
my_wc_mb_utf8mb4(const charset_info_st * const cs,
575
575
                 my_wc_t wc, unsigned char *r, unsigned char *e);
576
576
 
577
 
size_t my_caseup_str_utf8mb4(const CHARSET_INFO * const cs, char *src);
578
 
size_t my_casedn_str_utf8mb4(const CHARSET_INFO * const cs, char *src);
 
577
size_t my_caseup_str_utf8mb4(const charset_info_st * const cs, char *src);
 
578
size_t my_casedn_str_utf8mb4(const charset_info_st * const cs, char *src);
579
579
 
580
580
size_t
581
 
my_caseup_utf8mb4(const CHARSET_INFO * const cs, char *src, size_t srclen,
 
581
my_caseup_utf8mb4(const charset_info_st * const cs, char *src, size_t srclen,
582
582
                  char *dst, size_t dstlen);
583
583
size_t
584
 
my_casedn_utf8mb4(const CHARSET_INFO * const cs,
 
584
my_casedn_utf8mb4(const charset_info_st * const cs,
585
585
                  char *src, size_t srclen,
586
586
                  char *dst, size_t dstlen);
587
587
 
588
588
 
589
 
bool my_coll_init_uca(CHARSET_INFO *cs, cs_alloc_func alloc);
 
589
bool my_coll_init_uca(charset_info_st *cs, cs_alloc_func alloc);
590
590
 
591
 
int my_strnncoll_any_uca(const CHARSET_INFO * const cs,
 
591
int my_strnncoll_any_uca(const charset_info_st * const cs,
592
592
                         const unsigned char *s, size_t slen,
593
593
                         const unsigned char *t, size_t tlen,
594
594
                         bool t_is_prefix);
595
595
 
596
 
int my_strnncollsp_any_uca(const CHARSET_INFO * const cs,
 
596
int my_strnncollsp_any_uca(const charset_info_st * const cs,
597
597
                           const unsigned char *s, size_t slen,
598
598
                           const unsigned char *t, size_t tlen,
599
599
                           bool diff_if_only_endspace_difference);
600
600
 
601
 
void my_hash_sort_any_uca(const CHARSET_INFO * const cs,
 
601
void my_hash_sort_any_uca(const charset_info_st * const cs,
602
602
                          const unsigned char *s, size_t slen,
603
603
                          uint32_t *n1, uint32_t *n2);
604
604
 
605
 
size_t my_strnxfrm_any_uca(const CHARSET_INFO * const cs,
 
605
size_t my_strnxfrm_any_uca(const charset_info_st * const cs,
606
606
                           unsigned char *dst, size_t dstlen, uint32_t nweights,
607
607
                           const unsigned char *src, size_t srclen,
608
608
                           uint32_t flags);
609
609
 
610
 
int my_wildcmp_uca(const CHARSET_INFO * const cs,
 
610
int my_wildcmp_uca(const charset_info_st * const cs,
611
611
                   const char *str,const char *str_end,
612
612
                   const char *wildstr,const char *wildend,
613
613
                   int escape, int w_one, int w_many);
614
614
 
615
 
int my_strnncoll_8bit_bin(const CHARSET_INFO * const,
 
615
int my_strnncoll_8bit_bin(const charset_info_st * const,
616
616
                          const unsigned char *s, size_t slen,
617
617
                          const unsigned char *t, size_t tlen,
618
618
                          bool t_is_prefix);
619
 
int my_strnncollsp_8bit_bin(const CHARSET_INFO * const,
 
619
int my_strnncollsp_8bit_bin(const charset_info_st * const,
620
620
                            const unsigned char *a, size_t a_length,
621
621
                            const unsigned char *b, size_t b_length,
622
622
                            bool diff_if_only_endspace_difference);
623
 
size_t my_case_str_bin(const CHARSET_INFO * const, char *);
624
 
size_t my_case_bin(const CHARSET_INFO * const, char *,
 
623
size_t my_case_str_bin(const charset_info_st * const, char *);
 
624
size_t my_case_bin(const charset_info_st * const, char *,
625
625
                   size_t srclen, char *, size_t);
626
 
int my_strcasecmp_bin(const CHARSET_INFO * const,
 
626
int my_strcasecmp_bin(const charset_info_st * const,
627
627
                      const char *s, const char *t);
628
628
size_t
629
 
my_strnxfrm_8bit_bin(const CHARSET_INFO * const cs,
 
629
my_strnxfrm_8bit_bin(const charset_info_st * const cs,
630
630
                     unsigned char * dst, size_t dstlen, uint32_t nweights,
631
631
                     const unsigned char *src, size_t srclen, uint32_t flags);
632
 
uint32_t my_instr_bin(const CHARSET_INFO * const,
 
632
uint32_t my_instr_bin(const charset_info_st * const,
633
633
                      const char *b, size_t b_length,
634
634
                      const char *s, size_t s_length,
635
635
                      my_match_t *match, uint32_t nmatch);
636
 
size_t my_lengthsp_binary(const CHARSET_INFO * const,
 
636
size_t my_lengthsp_binary(const charset_info_st * const,
637
637
                          const char *, size_t length);
638
 
int my_mb_wc_bin(const CHARSET_INFO * const,
 
638
int my_mb_wc_bin(const charset_info_st * const,
639
639
                 my_wc_t *wc, const unsigned char *str,
640
640
                 const unsigned char *end);
641
 
int my_wc_mb_bin(const CHARSET_INFO * const, my_wc_t wc,
 
641
int my_wc_mb_bin(const charset_info_st * const, my_wc_t wc,
642
642
                 unsigned char *str, unsigned char *end);
643
 
void my_hash_sort_8bit_bin(const CHARSET_INFO * const,
 
643
void my_hash_sort_8bit_bin(const charset_info_st * const,
644
644
                           const unsigned char *key, size_t len,
645
645
                           uint32_t *nr1, uint32_t *nr2);
646
 
bool my_coll_init_8bit_bin(CHARSET_INFO *cs,
 
646
bool my_coll_init_8bit_bin(charset_info_st *cs,
647
647
                           cs_alloc_func);
648
 
int my_strnncoll_binary(const CHARSET_INFO * const,
 
648
int my_strnncoll_binary(const charset_info_st * const,
649
649
                        const unsigned char *s, size_t slen,
650
650
                        const unsigned char *t, size_t tlen,
651
651
                        bool t_is_prefix);
652
 
int my_strnncollsp_binary(const CHARSET_INFO * const cs,
 
652
int my_strnncollsp_binary(const charset_info_st * const cs,
653
653
                          const unsigned char *s, size_t slen,
654
654
                          const unsigned char *t, size_t tlen,
655
655
                          bool);
882
882
  return (cs->cset->strntod(cs, s, l, e, err));
883
883
}
884
884
 
885
 
int make_escape_code(const CHARSET_INFO * const cs, const char *escape);
 
885
int make_escape_code(const charset_info_st * const cs, const char *escape);
886
886
 
887
887
} /* namespace drizzled */
888
888