23#ifndef M_CTYPE_INCLUDED
24#define M_CTYPE_INCLUDED
44#define MY_CS_NAME_SIZE 32
45#define MY_CS_CTYPE_TABLE_SIZE 257
46#define MY_CS_TO_LOWER_TABLE_SIZE 256
47#define MY_CS_TO_UPPER_TABLE_SIZE 256
48#define MY_CS_SORT_ORDER_TABLE_SIZE 256
49#define MY_CS_TO_UNI_TABLE_SIZE 256
51#define CHARSET_DIR "charsets/"
60#define MY_CS_REPLACEMENT_CHARACTER 0xFFFD
95#define MY_CS_TOOSMALL -101
96#define MY_CS_TOOSMALL2 -102
97#define MY_CS_TOOSMALL3 -103
99#define MY_CS_TOOSMALL4 -104
100#define MY_CS_TOOSMALL5 -105
101#define MY_CS_TOOSMALL6 -106
103#define MY_CS_TOOSMALLN(n) (-100 - (n))
105#define MY_SEQ_INTTAIL 1
106#define MY_SEQ_SPACES 2
109#define MY_CS_COMPILED 1
110#define MY_CS_CONFIG 2
112#define MY_CS_LOADED 8
113#define MY_CS_BINSORT 16
114#define MY_CS_PRIMARY 32
115#define MY_CS_STRNXFRM \
122#define MY_CS_UNICODE 128
123#define MY_CS_READY 256
124#define MY_CS_AVAILABLE 512
125#define MY_CS_CSSORT 1024
126#define MY_CS_HIDDEN 2048
127#define MY_CS_PUREASCII 4096
128#define MY_CS_NONASCII 8192
129#define MY_CS_UNICODE_SUPPLEMENT 16384
130#define MY_CS_LOWER_SORT 32768
131#define MY_CHARSET_UNDEFINED 0
134#define MY_REPERTOIRE_ASCII 1
135#define MY_REPERTOIRE_EXTENDED 2
136#define MY_REPERTOIRE_UNICODE30 3
139#define MY_STRXFRM_PAD_TO_MAXLEN 0x00000080
162 void *(*once_alloc)(size_t);
163 void *(*mem_malloc)(size_t);
164 void *(*mem_realloc)(
void *, size_t);
217 uint num_codepoints,
const uchar *src,
size_t srclen,
232 char w_prefix,
char w_one,
char w_many,
size_t res_length,
233 char *min_str,
char *max_str,
size_t *min_len,
236 const char *wildstr,
const char *wildend,
int escape,
237 int w_one,
int w_many);
242 const char *s,
size_t s_length,
my_match_t *match,
291 size_t nchars,
int *
error);
327 ...) MY_ATTRIBUTE((format(printf, 4, 5)));
337 const char **e,
int *
err);
339 const char **e,
int *
err);
341 const char **e,
int *
err);
343 int base,
const char **e,
int *
err);
345 const char **e,
int *
err);
349 size_t length,
int unsigned_fl,
350 const char **endptr,
int *
error);
403#define ILLEGAL_CHARSET_INFO_NUMBER (~0U)
427#define MY_UTF8MB4 "utf8mb4"
431 size_t dstlen,
uint nweights,
const uchar *src,
435 const uchar *,
size_t,
bool);
438 const uchar *,
size_t);
447 size_t b_length,
const char *s,
size_t s_length,
454 char *dst,
size_t dstlen);
456 char *dst,
size_t dstlen);
472 const char *fmt, ...)
473 MY_ATTRIBUTE((format(printf, 4, 5)));
476 const
char **e,
int *
err);
478 const
char **e,
int *
err);
480 int base, const
char **e,
int *
err);
482 int base, const
char **e,
int *
err);
484 const
char **e,
int *
err);
486 int radix,
long int val);
491 const
char **endptr,
int *
error);
496 size_t length,
int unsigned_fl,
497 const
char **endptr,
int *
error);
499 size_t length,
int unsigned_fl,
char **endptr,
506 size_t ptr_length,
char escape,
char w_one,
507 char w_many,
size_t res_length,
char *min_str,
508 char *max_str,
size_t *min_length,
513 size_t ptr_length,
char escape,
char w_one,
char w_many,
514 size_t res_length,
char *min_str,
char *max_str,
515 size_t *min_length,
size_t *max_length);
519 size_t ptr_length,
char escape,
char w_one,
520 char w_many,
size_t res_length,
char *min_str,
521 char *max_str,
size_t *min_length,
525 const
char *wildstr, const
char *wildend,
int escape,
526 int w_one,
int w_many);
529 const
char *wildstr, const
char *wildend,
int escape,
530 int w_one,
int w_many);
537 const
char *e,
size_t pos,
int *
error);
544 char *dst,
size_t dstlen);
546 char *dst,
size_t dstlen);
548 size_t srclen,
char *dst,
size_t dstlen);
550 size_t srclen,
char *dst,
size_t dstlen);
552 char *dst,
size_t dstlen);
554 char *dst,
size_t dstlen);
558 const
char *wildstr, const
char *wildend,
int escape,
559 int w_one,
int w_many);
567 const
char *s,
size_t s_length,
my_match_t *match,
571 const
uchar *t,
size_t tlen,
bool t_is_prefix);
574 size_t a_length, const
uchar *b,
size_t b_length);
577 const
char *str_end, const
char *wildstr,
578 const
char *wildend,
int escape,
int w_one,
int w_many);
588 uint nweights, const
uchar *src,
size_t srclen,
592 uint nweights, const
uchar *src,
size_t srclen,
596 size_t dstlen,
uint nweights,
597 const
uchar *src,
size_t srclen,
602 const
char *str_end, const
char *wildstr,
603 const
char *wildend,
int escape,
int w_one,
int w_many,
609 const
char *
end, const
char *reject,
610 size_t reject_length);
627 const
char *from,
size_t from_length,
633 const
char *wildend,
int escape,
int w_many,
650#define my_isascii(c) (!((c) & ~0177))
651#define my_toupper(s, c) (char)((s)->to_upper[(uchar)(c)])
652#define my_tolower(s, c) (char)((s)->to_lower[(uchar)(c)])
653#define my_isalpha(s, c) (((s)->ctype + 1)[(uchar)(c)] & (_MY_U | _MY_L))
654#define my_isupper(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_U)
655#define my_islower(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_L)
656#define my_isdigit(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_NMR)
657#define my_isxdigit(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_X)
658#define my_isalnum(s, c) \
659 (((s)->ctype + 1)[(uchar)(c)] & (_MY_U | _MY_L | _MY_NMR))
660#define my_isspace(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_SPC)
661#define my_ispunct(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_PNT)
662#define my_isprint(s, c) \
663 (((s)->ctype + 1)[(uchar)(c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B))
664#define my_isgraph(s, c) \
665 (((s)->ctype + 1)[(uchar)(c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR))
666#define my_iscntrl(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_CTR)
669#define my_isvar(s, c) (my_isalnum(s, c) || (c) == '_')
670#define my_isvar_start(s, c) (my_isalpha(s, c) || (c) == '_')
672#define my_binary_compare(s) ((s)->state & MY_CS_BINSORT)
673#define use_strnxfrm(s) ((s)->state & MY_CS_STRNXFRM)
674#define my_strnxfrm(cs, d, dl, s, sl) \
675 ((cs)->coll->strnxfrm((cs), (d), (dl), (dl), (s), (sl), 0))
676#define my_strnncoll(s, a, b, c, d) \
677 ((s)->coll->strnncoll((s), (a), (b), (c), (d), 0))
678#define my_like_range(s, a, b, c, d, e, f, g, h, i, j) \
679 ((s)->coll->like_range((s), (a), (b), (c), (d), (e), (f), (g), (h), (i), (j)))
680#define my_wildcmp(cs, s, se, w, we, e, o, m) \
681 ((cs)->coll->wildcmp((cs), (s), (se), (w), (we), (e), (o), (m)))
682#define my_strcasecmp(s, a, b) ((s)->coll->strcasecmp((s), (a), (b)))
683#define my_charpos(cs, b, e, num) \
684 (cs)->cset->charpos((cs), (const char *)(b), (const char *)(e), (num))
686#define use_mb(s) ((s)->cset->ismbchar != NULL)
694 return cs->cset->ismbchar(
cs, pointer_cast<const char *>(
str),
695 pointer_cast<const char *>(
strend));
698#define my_mbcharlen(s, a) ((s)->cset->mbcharlen((s), (a)))
709#define my_mbcharlen_2(s, a, b) \
710 ((s)->cset->mbcharlen((s), ((((a)&0xFF) << 8) + ((b)&0xFF))))
719#define my_mbmaxlenlen(s) ((s)->mbmaxlenlen)
729#define my_ismb1st(s, i) \
730 (my_mbcharlen((s), (i)) > 1 || \
731 (my_mbmaxlenlen((s)) == 2 && my_mbcharlen((s), (i)) == 0))
733#define my_caseup_str(s, a) ((s)->cset->caseup_str((s), (a)))
734#define my_casedn_str(s, a) ((s)->cset->casedn_str((s), (a)))
735#define my_strntol(s, a, b, c, d, e) \
736 ((s)->cset->strntol((s), (a), (b), (c), (d), (e)))
737#define my_strntoul(s, a, b, c, d, e) \
738 ((s)->cset->strntoul((s), (a), (b), (c), (d), (e)))
739#define my_strntoll(s, a, b, c, d, e) \
740 ((s)->cset->strntoll((s), (a), (b), (c), (d), (e)))
741#define my_strntoull(s, a, b, c, d, e) \
742 ((s)->cset->strntoull((s), (a), (b), (c), (d), (e)))
743#define my_strntod(s, a, b, c, d) ((s)->cset->strntod((s), (a), (b), (c), (d)))
746 return (
cs->mbminlen == 1);
char * pos
Definition: do_ctype.cc:76
static int flags[50]
Definition: hp_test1.cc:39
size_t my_convert(char *to, size_t to_length, const CHARSET_INFO *to_cs, const char *from, size_t from_length, const CHARSET_INFO *from_cs, uint *errors)
Convert a string between two character sets.
Definition: ctype.cc:941
size_t my_caseup_mb_varlen(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-mb.cc:185
int my_strcasecmp_8bit(const CHARSET_INFO *cs, const char *, const char *)
Definition: ctype-simple.cc:244
struct MY_UNICASE_INFO MY_UNICASE_INFO
size_t my_casedn_str_mb(const CHARSET_INFO *, char *)
Definition: ctype-mb.cc:60
static uint my_ismbchar(const CHARSET_INFO *cs, const char *str, const char *strend)
Definition: m_ctype.h:682
size_t my_well_formed_len_mb(const CHARSET_INFO *, const char *b, const char *e, size_t pos, int *error)
Definition: ctype-mb.cc:342
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8_general_ci
Definition: ctype-utf8.cc:5782
double my_strntod_8bit(const CHARSET_INFO *, const char *s, size_t l, const char **e, int *err)
Definition: ctype-simple.cc:645
MY_COLLATION_HANDLER my_collation_ucs2_uca_handler
Definition: ctype-uca.cc:5185
CHARSET_INFO my_charset_latin1_bin
Definition: ctype-latin1.cc:670
size_t my_numchars_8bit(const CHARSET_INFO *, const char *b, const char *e)
Definition: ctype-simple.cc:911
MY_UNICASE_INFO my_unicase_unicode520
Definition: ctype-utf8.cc:4790
size_t my_snprintf_8bit(const CHARSET_INFO *, char *to, size_t n, const char *fmt,...)
Definition: ctype-simple.cc:280
size_t my_strnxfrmlen_simple(const CHARSET_INFO *, size_t)
Definition: ctype-simple.cc:63
struct MY_COLLATION_HANDLER MY_COLLATION_HANDLER
size_t my_strnxfrmlen_unicode_full_bin(const CHARSET_INFO *, size_t)
Definition: ctype-utf8.cc:5177
size_t my_caseup_str_8bit(const CHARSET_INFO *, char *)
Definition: ctype-simple.cc:210
MY_COLLATION_HANDLER my_collation_mb_bin_handler
Definition: ctype-mb.cc:1336
int my_strnncoll_mb_bin(const CHARSET_INFO *cs, const uchar *s, size_t slen, const uchar *t, size_t tlen, bool t_is_prefix)
Definition: ctype-mb.cc:409
ulonglong my_strntoull10rnd_8bit(const CHARSET_INFO *cs, const char *str, size_t length, int unsigned_fl, const char **endptr, int *error)
Definition: ctype-simple.cc:1234
int(* my_charset_conv_wc_mb)(const CHARSET_INFO *, my_wc_t, uchar *, uchar *)
Definition: m_ctype.h:264
size_t my_well_formed_len_8bit(const CHARSET_INFO *, const char *b, const char *e, size_t pos, int *error)
Definition: ctype-simple.cc:927
MY_CHARSET_HANDLER my_charset_ascii_handler
Definition: ctype-simple.cc:1555
static bool is_supported_parser_charset(const CHARSET_INFO *cs)
Definition: m_ctype.h:740
MY_UNICASE_INFO my_unicase_turkish
Definition: ctype-utf8.cc:1882
ulong my_strntoul_8bit(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: ctype-simple.cc:396
struct MY_CHARSET_LOADER MY_CHARSET_LOADER
int my_mb_wc_8bit(const CHARSET_INFO *cs, my_wc_t *wc, const uchar *s, const uchar *e)
Definition: ctype-simple.cc:251
bool my_like_range_simple(const CHARSET_INFO *cs, const char *ptr, size_t ptr_length, char escape, char w_one, char w_many, size_t res_length, char *min_str, char *max_str, size_t *min_length, size_t *max_length)
Definition: ctype-simple.cc:841
size_t my_caseup_mb(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-mb.cc:87
void my_fill_8bit(const CHARSET_INFO *cs, char *to, size_t l, int fill)
Definition: ctype-simple.cc:906
size_t my_casedn_mb(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-mb.cc:114
MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler
Definition: ctype-simple.cc:1584
CHARSET_INFO my_charset_utf8_tolower_ci
Definition: ctype-utf8.cc:5817
uint my_mbcharlen_8bit(const CHARSET_INFO *, uint c)
Definition: ctype-bin.cc:226
uint my_mbcharlen_ptr(const CHARSET_INFO *cs, const char *s, const char *e)
Get the length of the first code in given sequence of chars.
Definition: ctype.cc:999
MY_COLLATION_HANDLER my_collation_8bit_bin_handler
Definition: ctype-bin.cc:453
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1523
MY_UNICASE_INFO my_unicase_mysql500
Definition: ctype-utf8.cc:1708
CHARSET_INFO my_charset_utf8_unicode_ci
Definition: ctype-uca.cc:6083
size_t my_casedn_8bit(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-simple.cc:234
size_t my_caseup_str_mb(const CHARSET_INFO *, char *)
Definition: ctype-mb.cc:43
size_t my_longlong10_to_str_8bit(const CHARSET_INFO *, char *to, size_t l, int radix, longlong val)
Definition: ctype-simple.cc:694
struct MY_CHARSET_HANDLER MY_CHARSET_HANDLER
uint my_strxfrm_flag_normalize(uint flags)
Definition: ctype-simple.cc:1506
int my_mb_ctype_8bit(const CHARSET_INFO *, int *, const uchar *, const uchar *)
Definition: ctype-simple.cc:1143
size_t my_caseup_8bit(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-simple.cc:224
size_t my_numchars_mb(const CHARSET_INFO *, const char *b, const char *e)
Definition: ctype-mb.cc:319
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8mb4_general_ci
Definition: ctype-utf8.cc:7806
size_t my_strxfrm_pad(const CHARSET_INFO *cs, uchar *str, uchar *frmend, uchar *strend, uint nweights, uint flags)
Definition: ctype-simple.cc:1511
bool my_charset_is_ascii_compatible(const CHARSET_INFO *cs)
Definition: ctype.cc:855
uint my_string_repertoire(const CHARSET_INFO *cs, const char *str, size_t len)
Definition: ctype.cc:775
int my_strnncoll_simple(const CHARSET_INFO *, const uchar *, size_t, const uchar *, size_t, bool)
Definition: ctype-simple.cc:136
ulonglong my_strntoull10rnd_ucs2(const CHARSET_INFO *cs, const char *str, size_t length, int unsigned_fl, char **endptr, int *error)
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_filename
Definition: ctype-utf8.cc:7044
int my_mb_ctype_mb(const CHARSET_INFO *, int *, const uchar *, const uchar *)
Definition: ctype-mb.cc:1323
long my_strntol_8bit(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: ctype-simple.cc:317
size_t my_lengthsp_8bit(const CHARSET_INFO *cs, const char *ptr, size_t length)
Definition: ctype-simple.cc:935
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:266
size_t my_charpos_mb(const CHARSET_INFO *, const char *b, const char *e, size_t pos)
Definition: ctype-mb.cc:330
bool my_charset_is_8bit_pure_ascii(const CHARSET_INFO *cs)
Definition: ctype.cc:841
int my_wildcmp_bin(const CHARSET_INFO *, const char *str, const char *str_end, const char *wildstr, const char *wildend, int escape, int w_one, int w_many)
Definition: ctype-bin.cc:369
uint my_instr_mb(const CHARSET_INFO *, const char *b, size_t b_length, const char *s, size_t s_length, my_match_t *match, uint nmatch)
Definition: ctype-mb.cc:361
int my_wildcmp_mb(const CHARSET_INFO *, const char *str, const char *str_end, const char *wildstr, const char *wildend, int escape, int w_one, int w_many)
Definition: ctype-mb.cc:312
struct MY_UNI_IDX MY_UNI_IDX
size_t my_casedn_mb_varlen(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-mb.cc:178
int my_wildcmp_8bit(const CHARSET_INFO *, const char *str, const char *str_end, const char *wildstr, const char *wildend, int escape, int w_one, int w_many)
Definition: ctype-simple.cc:817
MY_UNICASE_INFO my_unicase_default
Definition: ctype-utf8.cc:1662
CHARSET_INFO my_charset_utf8mb4_bin
Definition: ctype-utf8.cc:7842
struct MY_UNICASE_CHARACTER MY_UNICASE_CHARACTER
MY_CHARSET_HANDLER my_charset_8bit_handler
Definition: ctype-simple.cc:1527
void my_hash_sort_simple(const CHARSET_INFO *cs, const uchar *key, size_t len, uint64 *nr1, uint64 *nr2)
Definition: ctype-simple.cc:290
int my_strnncollsp_mb_bin(const CHARSET_INFO *cs, const uchar *a, size_t a_length, const uchar *b, size_t b_length)
Definition: ctype-mb.cc:439
int my_wildcmp_unicode(const CHARSET_INFO *cs, const char *str, const char *str_end, const char *wildstr, const char *wildend, int escape, int w_one, int w_many, const MY_UNICASE_INFO *weights)
Definition: ctype-utf8.cc:4933
bool my_is_prefixidx_cand(const CHARSET_INFO *cs, const char *wildstr, const char *wildend, int escape, int w_many, size_t *prefix_len)
Identify whether given like pattern looks like a prefix pattern, which can become candidate for index...
Definition: ctype.cc:1026
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8mb4_0900_bin
Definition: ctype-uca.cc:11434
longlong my_strtoll10_8bit(const CHARSET_INFO *cs, const char *nptr, const char **endptr, int *error)
Definition: ctype-simple.cc:1138
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8mb4_0900_ai_ci
Definition: ctype-uca.cc:9562
static void MY_PUT_MB2(unsigned char *s, uint16 code)
Definition: m_ctype.h:62
struct MY_UNI_CTYPE MY_UNI_CTYPE
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:510
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_latin1
Definition: ctype-latin1.cc:367
ulong my_wc_t
Our own version of wchar_t, ie., a type that holds a single Unicode code point ("wide character").
Definition: m_ctype.h:58
int my_strcasecmp_mb_bin(const CHARSET_INFO *cs, const char *s, const char *t)
Definition: ctype-mb.cc:560
size_t my_numcells_8bit(const CHARSET_INFO *, const char *b, const char *e)
Definition: ctype-simple.cc:916
size_t my_long10_to_str_8bit(const CHARSET_INFO *, char *to, size_t l, int radix, long int val)
Definition: ctype-simple.cc:658
uint my_charset_repertoire(const CHARSET_INFO *cs)
Definition: ctype.cc:797
ulonglong my_strntoull_8bit(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: ctype-simple.cc:548
bool my_like_range_generic(const CHARSET_INFO *cs, const char *ptr, size_t ptr_length, char escape, char w_one, char w_many, size_t res_length, char *min_str, char *max_str, size_t *min_length, size_t *max_length)
Calculate min_str and max_str that ranges a LIKE string.
Definition: ctype-mb.cc:808
MY_UNI_CTYPE my_uni_ctype[256]
Definition: my_uctype.h:934
int my_wc_mb_8bit(const CHARSET_INFO *cs, my_wc_t wc, uchar *s, uchar *e)
Definition: ctype-simple.cc:259
size_t my_charpos_8bit(const CHARSET_INFO *, const char *b, const char *e, size_t pos)
Definition: ctype-simple.cc:921
void my_hash_sort_mb_bin(const CHARSET_INFO *cs, const uchar *key, size_t len, uint64 *nr1, uint64 *nr2)
Definition: ctype-mb.cc:565
int my_strcasecmp_mb(const CHARSET_INFO *cs, const char *, const char *)
Definition: ctype-mb.cc:196
size_t my_casedn_str_8bit(const CHARSET_INFO *, char *)
Definition: ctype-simple.cc:217
size_t my_strnxfrm_mb(const CHARSET_INFO *, uchar *dst, size_t dstlen, uint nweights, const uchar *src, size_t srclen, uint flags)
Definition: ctype-mb.cc:501
int(* my_charset_conv_mb_wc)(const CHARSET_INFO *, my_wc_t *, const uchar *, const uchar *)
Definition: m_ctype.h:262
size_t my_strnxfrm_unicode_full_bin(const CHARSET_INFO *, uchar *dst, size_t dstlen, uint nweights, const uchar *src, size_t srclen, uint flags)
Definition: ctype-utf8.cc:5132
bool my_parse_charset_xml(MY_CHARSET_LOADER *loader, const char *buf, size_t buflen)
Definition: ctype.cc:745
CHARSET_INFO my_charset_utf32_unicode_ci
Definition: ctype-uca.cc:7788
bool my_like_range_mb(const CHARSET_INFO *cs, const char *ptr, size_t ptr_length, char escape, char w_one, char w_many, size_t res_length, char *min_str, char *max_str, size_t *min_length, size_t *max_length)
Definition: ctype-mb.cc:660
int(* my_string_stack_guard)(int)
Definition: ctype.cc:64
MY_CHARSET_HANDLER my_charset_ucs2_handler
Definition: ctype-ucs2.cc:2859
bool my_charset_is_ascii_based(const CHARSET_INFO *cs)
Definition: ctype.cc:828
size_t my_strcspn(const CHARSET_INFO *cs, const char *str, const char *end, const char *reject, size_t reject_length)
Calculate the length of the initial segment of 'str' which consists entirely of characters not in 're...
Definition: my_strchr.cc:64
uint my_instr_simple(const CHARSET_INFO *, const char *b, size_t b_length, const char *s, size_t s_length, my_match_t *match, uint nmatch)
Definition: ctype-simple.cc:942
size_t my_scan_8bit(const CHARSET_INFO *cs, const char *b, const char *e, int sq)
Definition: ctype-simple.cc:884
longlong my_strtoll10_ucs2(const CHARSET_INFO *cs, const char *nptr, char **endptr, int *error)
bool my_propagate_complex(const CHARSET_INFO *cs, const uchar *str, size_t len)
Definition: ctype-simple.cc:1489
int my_wildcmp_mb_bin(const CHARSET_INFO *cs, const char *str, const char *str_end, const char *wildstr, const char *wildend, int escape, int w_one, int w_many)
Definition: ctype-mb.cc:1041
size_t my_strnxfrm_simple(const CHARSET_INFO *, uchar *dst, size_t dstlen, uint nweights, const uchar *src, size_t srclen, uint flags)
Definition: ctype-simple.cc:106
CHARSET_INFO my_charset_utf8_bin
Definition: ctype-utf8.cc:5887
longlong my_strntoll_8bit(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: ctype-simple.cc:469
size_t my_casedn_ujis(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-ujis.cc:35761
size_t my_numcells_mb(const CHARSET_INFO *, const char *b, const char *e)
Definition: ctype-mb.cc:1291
size_t my_strnxfrm_unicode(const CHARSET_INFO *, uchar *dst, size_t dstlen, uint nweights, const uchar *src, size_t srclen, uint flags)
Definition: ctype-utf8.cc:5111
Pad_attribute
Definition: m_ctype.h:167
@ NO_PAD
Definition: m_ctype.h:167
@ PAD_SPACE
Definition: m_ctype.h:167
bool my_propagate_simple(const CHARSET_INFO *cs, const uchar *str, size_t len)
Definition: ctype-simple.cc:1483
size_t my_caseup_ujis(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-ujis.cc:35771
int my_strnncollsp_simple(const CHARSET_INFO *, const uchar *, size_t, const uchar *, size_t)
Definition: ctype-simple.cc:178
static const char * strend(const char *s)
Definition: m_string.h:91
Header for compiler-dependent features.
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
unsigned char uchar
Definition: my_inttypes.h:51
long long int longlong
Definition: my_inttypes.h:54
uint64_t uint64
Definition: my_inttypes.h:68
uint16_t uint16
Definition: my_inttypes.h:64
uint32_t uint32
Definition: my_inttypes.h:66
Definition of the global "loglevel" enumeration.
loglevel
Definition: my_loglevel.h:40
Functions related to handling of plugins and other dynamically loaded libraries.
#define MYSQL_PLUGIN_IMPORT
Definition: my_sharedlib.h:70
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1055
Definition: buf0block_hint.cc:29
Definition: commit_order_queue.h:33
static std::string escape(const std::string &str)
Escapes (only) apostrophes.
Definition: st_units_of_measure.cc:36
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:75
static Value err()
Create a Value object that represents an error condition.
Definition: json_binary.cc:908
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:191
required string key
Definition: replication_asynchronous_connection_failover.proto:59
Definition: m_ctype.h:354
const uchar * to_lower
Definition: m_ctype.h:365
uchar levels_for_compare
Definition: m_ctype.h:384
const uchar * ident_map
Definition: m_ctype.h:373
uint mbmaxlenlen
Definition: m_ctype.h:379
const struct lex_state_maps_st * state_maps
Definition: m_ctype.h:372
const uchar * ctype
Definition: m_ctype.h:364
uint primary_number
Definition: m_ctype.h:356
const char * csname
Definition: m_ctype.h:359
my_wc_t max_sort_char
Definition: m_ctype.h:381
const MY_UNICASE_INFO * caseinfo
Definition: m_ctype.h:371
bool escape_with_backslash_is_dangerous
Definition: m_ctype.h:383
uint mbminlen
Definition: m_ctype.h:377
uint binary_number
Definition: m_ctype.h:357
uchar caseup_multiply
Definition: m_ctype.h:375
const uchar * sort_order
Definition: m_ctype.h:367
uint mbmaxlen
Definition: m_ctype.h:378
MY_COLLATION_HANDLER * coll
Definition: m_ctype.h:387
MY_CHARSET_HANDLER * cset
Definition: m_ctype.h:386
const char * m_coll_name
Definition: m_ctype.h:360
uint state
Definition: m_ctype.h:358
uchar casedn_multiply
Definition: m_ctype.h:376
const uchar * to_upper
Definition: m_ctype.h:366
const MY_UNI_IDX * tab_from_uni
Definition: m_ctype.h:370
struct Coll_param * coll_param
Definition: m_ctype.h:363
uint number
Definition: m_ctype.h:355
struct MY_UCA_INFO * uca
Definition: m_ctype.h:368
const uint16 * tab_to_uni
Definition: m_ctype.h:369
uchar pad_char
Definition: m_ctype.h:382
my_wc_t min_sort_char
Definition: m_ctype.h:380
enum Pad_attribute pad_attribute
If this collation is PAD_SPACE, it collates as if all inputs were padded with a given number of space...
Definition: m_ctype.h:396
const char * tailoring
Definition: m_ctype.h:362
const char * comment
Definition: m_ctype.h:361
uint strxfrm_multiply
Definition: m_ctype.h:374
Definition: str_uca_type.h:68
Definition: m_ctype.h:270
longlong(* strtoll10)(const CHARSET_INFO *cs, const char *nptr, const char **endptr, int *error)
Definition: m_ctype.h:341
size_t(* lengthsp)(const CHARSET_INFO *, const char *ptr, size_t length)
Given a pointer and a length in bytes, returns a new length in bytes where all trailing space charact...
Definition: m_ctype.h:302
double(* strntod)(const CHARSET_INFO *, const char *s, size_t l, const char **e, int *err)
Definition: m_ctype.h:339
size_t(* well_formed_len)(const CHARSET_INFO *, const char *b, const char *e, size_t nchars, int *error)
Definition: m_ctype.h:285
ulonglong(* strntoull10rnd)(const CHARSET_INFO *cs, const char *str, size_t length, int unsigned_fl, const char **endptr, int *error)
Definition: m_ctype.h:343
size_t(* caseup_str)(const CHARSET_INFO *, char *)
Definition: m_ctype.h:314
uint(* mbcharlen)(const CHARSET_INFO *, uint c)
Definition: m_ctype.h:274
long(* strntol)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:331
size_t(* charpos)(const CHARSET_INFO *, const char *b, const char *e, size_t pos)
Return at which byte codepoint number "pos" begins, relative to the start of the string.
Definition: m_ctype.h:283
ulonglong(* strntoull)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:337
ulong(* strntoul)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:333
longlong(* strntoll)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:335
size_t(* numchars)(const CHARSET_INFO *, const char *b, const char *e)
Definition: m_ctype.h:275
size_t(* numcells)(const CHARSET_INFO *, const char *b, const char *e)
Definition: m_ctype.h:303
int(* ctype)(const CHARSET_INFO *cs, int *ctype, const uchar *s, const uchar *e)
Definition: m_ctype.h:310
void(* fill)(const CHARSET_INFO *, char *to, size_t len, int fill)
Definition: m_ctype.h:328
my_charset_conv_wc_mb wc_mb
Definition: m_ctype.h:307
size_t(* scan)(const CHARSET_INFO *, const char *b, const char *e, int sq)
Definition: m_ctype.h:346
bool(* init)(CHARSET_INFO *, MY_CHARSET_LOADER *loader)
Definition: m_ctype.h:271
my_charset_conv_mb_wc mb_wc
Definition: m_ctype.h:306
my_charset_conv_case caseup
Definition: m_ctype.h:317
size_t(* longlong10_to_str)(const CHARSET_INFO *, char *to, size_t n, int radix, longlong val)
Definition: m_ctype.h:325
size_t(* casedn_str)(const CHARSET_INFO *, char *)
Definition: m_ctype.h:315
size_t(* long10_to_str)(const CHARSET_INFO *, char *to, size_t n, int radix, long int val)
Definition: m_ctype.h:323
my_charset_conv_case casedn
Definition: m_ctype.h:318
uint(* ismbchar)(const CHARSET_INFO *, const char *, const char *)
Definition: m_ctype.h:273
size_t(* snprintf)(const CHARSET_INFO *, char *to, size_t n, const char *fmt,...)
Definition: m_ctype.h:321
Definition: m_ctype.h:154
void(* mem_free)(void *)
Definition: m_ctype.h:160
char errarg[192]
Definition: m_ctype.h:156
void(* reporter)(enum loglevel, uint errcode,...)
Definition: m_ctype.h:161
uint errcode
Definition: m_ctype.h:155
int(* add_collation)(CHARSET_INFO *cs)
Definition: m_ctype.h:162
Definition: m_ctype.h:170
int(* strcasecmp)(const CHARSET_INFO *, const char *, const char *)
Definition: m_ctype.h:234
bool(* like_range)(const CHARSET_INFO *, const char *s, size_t s_length, char w_prefix, char w_one, char w_many, size_t res_length, char *min_str, char *max_str, size_t *min_len, size_t *max_len)
Definition: m_ctype.h:226
bool(* init)(CHARSET_INFO *, MY_CHARSET_LOADER *)
Definition: m_ctype.h:171
int(* wildcmp)(const CHARSET_INFO *, const char *str, const char *str_end, const char *wildstr, const char *wildend, int escape, int w_one, int w_many)
Definition: m_ctype.h:230
void(* uninit)(CHARSET_INFO *)
Definition: m_ctype.h:172
bool(* propagate)(const CHARSET_INFO *cs, const uchar *str, size_t len)
Definition: m_ctype.h:253
void(* hash_sort)(const CHARSET_INFO *cs, const uchar *key, size_t len, uint64 *nr1, uint64 *nr2)
Compute a sort hash for the given key.
Definition: m_ctype.h:251
int(* strnncoll)(const CHARSET_INFO *, const uchar *, size_t, const uchar *, size_t, bool)
Definition: m_ctype.h:174
int(* strnncollsp)(const CHARSET_INFO *, const uchar *, size_t, const uchar *, size_t)
Compare the two strings under the pad rules given by the collation.
Definition: m_ctype.h:185
uint(* strstr)(const CHARSET_INFO *, const char *b, size_t b_length, const char *s, size_t s_length, my_match_t *match, uint nmatch)
Definition: m_ctype.h:236
size_t(* strnxfrm)(const CHARSET_INFO *, uchar *dst, size_t dstlen, uint num_codepoints, const uchar *src, size_t srclen, uint flags)
Transform the string into a form such that memcmp() between transformed strings yields the correct co...
Definition: m_ctype.h:211
size_t(* strnxfrmlen)(const CHARSET_INFO *, size_t num_bytes)
Return the maximum number of output bytes needed for strnxfrm() to output all weights for any string ...
Definition: m_ctype.h:225
Definition: str_uca_type.h:119
uint32 sort
Definition: m_ctype.h:70
uint32 tolower
Definition: m_ctype.h:69
uint32 toupper
Definition: m_ctype.h:68
const MY_UNICASE_CHARACTER ** page
Definition: m_ctype.h:75
my_wc_t maxchar
Definition: m_ctype.h:74
uchar * ctype
Definition: m_ctype.h:87
uchar pctype
Definition: m_ctype.h:86
Definition: m_ctype.h:136
const uchar * tab
Definition: m_ctype.h:139
uint16 from
Definition: m_ctype.h:137
uint16 to
Definition: m_ctype.h:138
Definition: sql_chars.h:89
Definition: m_ctype.h:142
unsigned int uint
Definition: uca-dump.cc:29
int n
Definition: xcom_base.cc:505