24#ifndef M_CTYPE_INCLUDED
25#define M_CTYPE_INCLUDED
45#define MY_CS_NAME_SIZE 32
46#define MY_CS_CTYPE_TABLE_SIZE 257
47#define MY_CS_TO_LOWER_TABLE_SIZE 256
48#define MY_CS_TO_UPPER_TABLE_SIZE 256
49#define MY_CS_SORT_ORDER_TABLE_SIZE 256
50#define MY_CS_TO_UNI_TABLE_SIZE 256
52#define CHARSET_DIR "charsets/"
61#define MY_CS_REPLACEMENT_CHARACTER 0xFFFD
96#define MY_CS_TOOSMALL -101
97#define MY_CS_TOOSMALL2 -102
98#define MY_CS_TOOSMALL3 -103
100#define MY_CS_TOOSMALL4 -104
101#define MY_CS_TOOSMALL5 -105
102#define MY_CS_TOOSMALL6 -106
104#define MY_CS_TOOSMALLN(n) (-100 - (n))
106#define MY_SEQ_INTTAIL 1
107#define MY_SEQ_SPACES 2
111static constexpr uint32_t
113static constexpr uint32_t
115static constexpr uint32_t
117static constexpr uint32_t
119static constexpr uint32_t
121static constexpr uint32_t
123static constexpr uint32_t
125static constexpr uint32_t
131static constexpr uint32_t
133static constexpr uint32_t
135static constexpr uint32_t
137static constexpr uint32_t
139static constexpr uint32_t
141static constexpr uint32_t
143static constexpr uint32_t
145static constexpr uint32_t
147static constexpr uint32_t
152#define MY_REPERTOIRE_ASCII 1
153#define MY_REPERTOIRE_EXTENDED 2
154#define MY_REPERTOIRE_UNICODE30 3
157#define MY_STRXFRM_PAD_TO_MAXLEN 0x00000080
243 uint num_codepoints,
const uchar *src,
size_t srclen,
258 char w_prefix,
char w_one,
char w_many,
size_t res_length,
259 char *min_str,
char *max_str,
size_t *min_len,
262 const char *wildstr,
const char *wildend,
int escape,
263 int w_one,
int w_many);
268 const char *s,
size_t s_length,
my_match_t *match,
317 size_t nchars,
int *
error);
353 ...) MY_ATTRIBUTE((format(printf, 4, 5)));
363 const char **e,
int *
err);
365 const char **e,
int *
err);
367 const char **e,
int *
err);
369 int base,
const char **e,
int *
err);
371 const char **e,
int *
err);
373 const char **endptr,
int *
error);
375 size_t length,
int unsigned_fl,
376 const char **endptr,
int *
error);
429#define ILLEGAL_CHARSET_INFO_NUMBER (~0U)
455 size_t dstlen,
uint nweights,
const uchar *src,
459 const uchar *,
size_t,
bool);
462 const uchar *,
size_t);
471 size_t b_length,
const char *s,
size_t s_length,
478 char *dst,
size_t dstlen);
480 char *dst,
size_t dstlen);
496 const char *fmt, ...)
497 MY_ATTRIBUTE((format(printf, 4, 5)));
500 const
char **e,
int *
err);
502 const
char **e,
int *
err);
504 int base, const
char **e,
int *
err);
506 int base, const
char **e,
int *
err);
508 const
char **e,
int *
err);
510 int radix,
long int val);
515 const
char **endptr,
int *
error);
517 char **endptr,
int *
error);
520 size_t length,
int unsigned_fl,
521 const
char **endptr,
int *
error);
523 size_t length,
int unsigned_fl,
char **endptr,
530 size_t ptr_length,
char escape,
char w_one,
531 char w_many,
size_t res_length,
char *min_str,
532 char *max_str,
size_t *min_length,
537 size_t ptr_length,
char escape,
char w_one,
char w_many,
538 size_t res_length,
char *min_str,
char *max_str,
539 size_t *min_length,
size_t *max_length);
543 size_t ptr_length,
char escape,
char w_one,
544 char w_many,
size_t res_length,
char *min_str,
545 char *max_str,
size_t *min_length,
549 const
char *wildstr, const
char *wildend,
int escape,
550 int w_one,
int w_many);
553 const
char *wildstr, const
char *wildend,
int escape,
554 int w_one,
int w_many);
561 const
char *e,
size_t pos,
int *
error);
568 char *dst,
size_t dstlen);
570 char *dst,
size_t dstlen);
572 size_t srclen,
char *dst,
size_t dstlen);
574 size_t srclen,
char *dst,
size_t dstlen);
576 char *dst,
size_t dstlen);
578 char *dst,
size_t dstlen);
582 const
char *wildstr, const
char *wildend,
int escape,
583 int w_one,
int w_many);
589 size_t pos,
int *
error);
591 const
char *s,
size_t s_length,
my_match_t *match,
595 const
uchar *t,
size_t tlen,
bool t_is_prefix);
598 size_t a_length, const
uchar *b,
size_t b_length);
601 const
char *str_end, const
char *wildstr,
602 const
char *wildend,
int escape,
int w_one,
int w_many);
612 uint nweights, const
uchar *src,
size_t srclen,
616 uint nweights, const
uchar *src,
size_t srclen,
620 size_t dstlen,
uint nweights,
621 const
uchar *src,
size_t srclen,
626 const
char *str_end, const
char *wildstr,
627 const
char *wildend,
int escape,
int w_one,
int w_many,
633 const
char *
end, const
char *reject,
634 size_t reject_length);
648 assert(0 != strcmp(cs1->
csname,
"utf8"));
649 assert(0 != strcmp(cs2->
csname,
"utf8"));
650 return ((cs1 == cs2) || !strcmp(cs1->
csname, cs2->
csname));
663 const char *from,
size_t from_length,
669 const char *wildend,
int escape,
int w_many,
686#define my_isascii(c) (!((c) & ~0177))
687#define my_toupper(s, c) (char)((s)->to_upper[(uchar)(c)])
688#define my_tolower(s, c) (char)((s)->to_lower[(uchar)(c)])
689#define my_isalpha(s, c) (((s)->ctype + 1)[(uchar)(c)] & (_MY_U | _MY_L))
690#define my_isupper(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_U)
691#define my_islower(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_L)
692#define my_isdigit(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_NMR)
693#define my_isxdigit(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_X)
694#define my_isalnum(s, c) \
695 (((s)->ctype + 1)[(uchar)(c)] & (_MY_U | _MY_L | _MY_NMR))
696#define my_isspace(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_SPC)
697#define my_ispunct(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_PNT)
698#define my_isprint(s, c) \
699 (((s)->ctype + 1)[(uchar)(c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B))
700#define my_isgraph(s, c) \
701 (((s)->ctype + 1)[(uchar)(c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR))
702#define my_iscntrl(s, c) (((s)->ctype + 1)[(uchar)(c)] & _MY_CTR)
705#define my_isvar(s, c) (my_isalnum(s, c) || (c) == '_')
706#define my_isvar_start(s, c) (my_isalpha(s, c) || (c) == '_')
708#define my_binary_compare(s) ((s)->state & MY_CS_BINSORT)
709#define use_strnxfrm(s) ((s)->state & MY_CS_STRNXFRM)
710#define my_strnxfrm(cs, d, dl, s, sl) \
711 ((cs)->coll->strnxfrm((cs), (d), (dl), (dl), (s), (sl), 0))
712#define my_strnncoll(s, a, b, c, d) \
713 ((s)->coll->strnncoll((s), (a), (b), (c), (d), 0))
714#define my_like_range(s, a, b, c, d, e, f, g, h, i, j) \
715 ((s)->coll->like_range((s), (a), (b), (c), (d), (e), (f), (g), (h), (i), (j)))
716#define my_wildcmp(cs, s, se, w, we, e, o, m) \
717 ((cs)->coll->wildcmp((cs), (s), (se), (w), (we), (e), (o), (m)))
718#define my_strcasecmp(s, a, b) ((s)->coll->strcasecmp((s), (a), (b)))
719#define my_charpos(cs, b, e, num) \
720 (cs)->cset->charpos((cs), (const char *)(b), (const char *)(e), (num))
722#define use_mb(s) ((s)->cset->ismbchar != NULL)
730 return cs->cset->ismbchar(
cs, pointer_cast<const char *>(
str),
731 pointer_cast<const char *>(
strend));
734#define my_mbcharlen(s, a) ((s)->cset->mbcharlen((s), (a)))
745#define my_mbcharlen_2(s, a, b) \
746 ((s)->cset->mbcharlen((s), ((((a)&0xFF) << 8) + ((b)&0xFF))))
755#define my_mbmaxlenlen(s) ((s)->mbmaxlenlen)
765#define my_ismb1st(s, i) \
766 (my_mbcharlen((s), (i)) > 1 || \
767 (my_mbmaxlenlen((s)) == 2 && my_mbcharlen((s), (i)) == 0))
769#define my_caseup_str(s, a) ((s)->cset->caseup_str((s), (a)))
770#define my_casedn_str(s, a) ((s)->cset->casedn_str((s), (a)))
771#define my_strntol(s, a, b, c, d, e) \
772 ((s)->cset->strntol((s), (a), (b), (c), (d), (e)))
773#define my_strntoul(s, a, b, c, d, e) \
774 ((s)->cset->strntoul((s), (a), (b), (c), (d), (e)))
775#define my_strntoll(s, a, b, c, d, e) \
776 ((s)->cset->strntoll((s), (a), (b), (c), (d), (e)))
777#define my_strntoull(s, a, b, c, d, e) \
778 ((s)->cset->strntoull((s), (a), (b), (c), (d), (e)))
779#define my_strntod(s, a, b, c, d) ((s)->cset->strntod((s), (a), (b), (c), (d)))
782 return (
cs->mbminlen == 1);
static int flags[50]
Definition: hp_test1.cc:40
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:909
size_t my_caseup_mb_varlen(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-mb.cc:186
static constexpr uint32_t MY_CS_PUREASCII
Definition: m_ctype.h:142
int my_strcasecmp_8bit(const CHARSET_INFO *cs, const char *, const char *)
Definition: ctype-simple.cc:245
struct MY_UNICASE_INFO MY_UNICASE_INFO
size_t my_casedn_str_mb(const CHARSET_INFO *, char *)
Definition: ctype-mb.cc:61
size_t my_charpos_mb3(const CHARSET_INFO *, const char *b, const char *e, size_t pos)
Definition: ctype-mb.cc:331
static uint my_ismbchar(const CHARSET_INFO *cs, const char *str, const char *strend)
Definition: m_ctype.h:723
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:343
double my_strntod_8bit(const CHARSET_INFO *, const char *s, size_t l, const char **e, int *err)
Definition: ctype-simple.cc:646
MY_COLLATION_HANDLER my_collation_ucs2_uca_handler
Definition: ctype-uca.cc:5187
CHARSET_INFO my_charset_latin1_bin
Definition: ctype-latin1.cc:671
size_t my_numchars_8bit(const CHARSET_INFO *, const char *b, const char *e)
Definition: ctype-simple.cc:912
MY_UNICASE_INFO my_unicase_unicode520
Definition: ctype-utf8.cc:4783
size_t my_snprintf_8bit(const CHARSET_INFO *, char *to, size_t n, const char *fmt,...)
Definition: ctype-simple.cc:281
size_t my_strnxfrmlen_simple(const CHARSET_INFO *, size_t)
Definition: ctype-simple.cc:64
struct MY_COLLATION_HANDLER MY_COLLATION_HANDLER
size_t my_strnxfrmlen_unicode_full_bin(const CHARSET_INFO *, size_t)
Definition: ctype-utf8.cc:5170
size_t my_caseup_str_8bit(const CHARSET_INFO *, char *)
Definition: ctype-simple.cc:211
MY_COLLATION_HANDLER my_collation_mb_bin_handler
Definition: ctype-mb.cc:1337
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:410
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:1235
int(* my_charset_conv_wc_mb)(const CHARSET_INFO *, my_wc_t, uchar *, uchar *)
Definition: m_ctype.h:295
static constexpr uint32_t MY_CS_READY
Definition: m_ctype.h:134
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:928
MY_CHARSET_HANDLER my_charset_ascii_handler
Definition: ctype-simple.cc:1556
static bool is_supported_parser_charset(const CHARSET_INFO *cs)
Definition: m_ctype.h:781
static constexpr uint32_t MY_CS_NONASCII
Definition: m_ctype.h:144
MY_UNICASE_INFO my_unicase_turkish
Definition: ctype-utf8.cc:1875
static constexpr uint32_t MY_CS_STRNXFRM
Definition: m_ctype.h:126
ulong my_strntoul_8bit(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: ctype-simple.cc:397
int my_mb_wc_8bit(const CHARSET_INFO *cs, my_wc_t *wc, const uchar *s, const uchar *e)
Definition: ctype-simple.cc:252
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:842
size_t my_caseup_mb(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-mb.cc:88
CHARSET_INFO my_charset_utf8mb3_bin
Definition: ctype-utf8.cc:5883
void my_fill_8bit(const CHARSET_INFO *cs, char *to, size_t l, int fill)
Definition: ctype-simple.cc:907
size_t my_casedn_mb(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-mb.cc:115
MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler
Definition: ctype-simple.cc:1585
uint my_mbcharlen_8bit(const CHARSET_INFO *, uint c)
Definition: ctype-bin.cc:227
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:967
MY_COLLATION_HANDLER my_collation_8bit_bin_handler
Definition: ctype-bin.cc:454
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1545
static constexpr uint32_t MY_CS_BINSORT
Definition: m_ctype.h:122
MY_UNICASE_INFO my_unicase_mysql500
Definition: ctype-utf8.cc:1701
size_t my_casedn_8bit(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-simple.cc:235
size_t my_caseup_str_mb(const CHARSET_INFO *, char *)
Definition: ctype-mb.cc:44
static constexpr uint32_t MY_CS_LOWER_SORT
Definition: m_ctype.h:148
size_t my_longlong10_to_str_8bit(const CHARSET_INFO *, char *to, size_t l, int radix, longlong val)
Definition: ctype-simple.cc:695
struct MY_CHARSET_HANDLER MY_CHARSET_HANDLER
uint my_strxfrm_flag_normalize(uint flags)
Definition: ctype-simple.cc:1507
static bool my_charset_is_ascii_based(const CHARSET_INFO *cs)
Detect whether a character set is ASCII compatible.
Definition: m_ctype.h:643
int my_mb_ctype_8bit(const CHARSET_INFO *, int *, const uchar *, const uchar *)
Definition: ctype-simple.cc:1144
size_t my_caseup_8bit(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-simple.cc:225
static constexpr uint32_t MY_CS_UNICODE_SUPPLEMENT
Definition: m_ctype.h:146
size_t my_numchars_mb(const CHARSET_INFO *, const char *b, const char *e)
Definition: ctype-mb.cc:320
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8mb4_general_ci
Definition: ctype-utf8.cc:7758
size_t my_strxfrm_pad(const CHARSET_INFO *cs, uchar *str, uchar *frmend, uchar *strend, uint nweights, uint flags)
Definition: ctype-simple.cc:1512
bool my_charset_is_ascii_compatible(const CHARSET_INFO *cs)
Definition: ctype.cc:823
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:137
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:7040
int my_mb_ctype_mb(const CHARSET_INFO *, int *, const uchar *, const uchar *)
Definition: ctype-mb.cc:1324
long my_strntol_8bit(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: ctype-simple.cc:318
size_t my_lengthsp_8bit(const CHARSET_INFO *cs, const char *ptr, size_t length)
Definition: ctype-simple.cc:936
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:297
bool my_charset_is_8bit_pure_ascii(const CHARSET_INFO *cs)
Definition: ctype.cc:809
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:370
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:362
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:313
static constexpr uint32_t MY_CS_AVAILABLE
Definition: m_ctype.h:136
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:179
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:818
MY_UNICASE_INFO my_unicase_default
Definition: ctype-utf8.cc:1655
CHARSET_INFO my_charset_utf8mb4_bin
Definition: ctype-utf8.cc:7794
struct MY_UNICASE_CHARACTER MY_UNICASE_CHARACTER
MY_CHARSET_HANDLER my_charset_8bit_handler
Definition: ctype-simple.cc:1528
void my_hash_sort_simple(const CHARSET_INFO *cs, const uchar *key, size_t len, uint64 *nr1, uint64 *nr2)
Definition: ctype-simple.cc:291
static constexpr uint32_t MY_CHARSET_UNDEFINED
Definition: m_ctype.h:112
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:440
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:4926
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:994
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8mb4_0900_bin
Definition: ctype-uca.cc:11436
longlong my_strtoll10_8bit(const CHARSET_INFO *cs, const char *nptr, const char **endptr, int *error)
Definition: ctype-simple.cc:1139
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8mb4_0900_ai_ci
Definition: ctype-uca.cc:9564
static void MY_PUT_MB2(unsigned char *s, uint16 code)
Definition: m_ctype.h:63
static constexpr uint32_t MY_CS_UNICODE
Definition: m_ctype.h:132
struct MY_UNI_CTYPE MY_UNI_CTYPE
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:511
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_latin1
Definition: ctype-latin1.cc:368
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:59
static constexpr uint32_t MY_CS_HIDDEN
Definition: m_ctype.h:140
int my_strcasecmp_mb_bin(const CHARSET_INFO *cs, const char *s, const char *t)
Definition: ctype-mb.cc:561
size_t my_numcells_8bit(const CHARSET_INFO *, const char *b, const char *e)
Definition: ctype-simple.cc:917
size_t my_long10_to_str_8bit(const CHARSET_INFO *, char *to, size_t l, int radix, long int val)
Definition: ctype-simple.cc:659
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:549
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:809
bool my_charset_same(const CHARSET_INFO *cs1, const CHARSET_INFO *cs2)
Definition: m_ctype.h:647
MY_UNI_CTYPE my_uni_ctype[256]
Definition: my_uctype.h:935
int my_wc_mb_8bit(const CHARSET_INFO *cs, my_wc_t wc, uchar *s, uchar *e)
Definition: ctype-simple.cc:260
CHARSET_INFO my_charset_utf8mb3_tolower_ci
Definition: ctype-utf8.cc:5813
size_t my_charpos_8bit(const CHARSET_INFO *, const char *b, const char *e, size_t pos)
Definition: ctype-simple.cc:922
static constexpr uint32_t MY_CS_CONFIG_UNUSED
Definition: m_ctype.h:116
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_utf8mb3_general_ci
Definition: ctype-utf8.cc:5778
void my_hash_sort_mb_bin(const CHARSET_INFO *cs, const uchar *key, size_t len, uint64 *nr1, uint64 *nr2)
Definition: ctype-mb.cc:566
static constexpr uint32_t MY_CS_LOADED
Definition: m_ctype.h:120
static constexpr uint32_t MY_CS_INDEX_UNUSED
Definition: m_ctype.h:118
int my_strcasecmp_mb(const CHARSET_INFO *cs, const char *, const char *)
Definition: ctype-mb.cc:197
size_t my_casedn_str_8bit(const CHARSET_INFO *, char *)
Definition: ctype-simple.cc:218
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:502
int(* my_charset_conv_mb_wc)(const CHARSET_INFO *, my_wc_t *, const uchar *, const uchar *)
Definition: m_ctype.h:293
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:5125
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:7790
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:661
int(* my_string_stack_guard)(int)
Definition: ctype.cc:65
MY_CHARSET_HANDLER my_charset_ucs2_handler
Definition: ctype-ucs2.cc:2859
static constexpr uint32_t MY_CS_PRIMARY
Definition: m_ctype.h:124
static constexpr uint32_t MY_CS_COMPILED
Definition: m_ctype.h:114
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:65
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:943
size_t my_scan_8bit(const CHARSET_INFO *cs, const char *b, const char *e, int sq)
Definition: ctype-simple.cc:885
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:1490
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:1042
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:107
longlong my_strntoll_8bit(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: ctype-simple.cc:470
size_t my_casedn_ujis(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-ujis.cc:35762
size_t my_numcells_mb(const CHARSET_INFO *, const char *b, const char *e)
Definition: ctype-mb.cc:1292
CHARSET_INFO my_charset_utf8mb3_unicode_ci
Definition: ctype-uca.cc:6085
static constexpr uint32_t MY_CS_CSSORT
Definition: m_ctype.h:138
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:5104
Pad_attribute
Definition: m_ctype.h:198
@ NO_PAD
Definition: m_ctype.h:198
@ PAD_SPACE
Definition: m_ctype.h:198
bool my_propagate_simple(const CHARSET_INFO *cs, const uchar *str, size_t len)
Definition: ctype-simple.cc:1484
size_t my_caseup_ujis(const CHARSET_INFO *, char *src, size_t srclen, char *dst, size_t dstlen)
Definition: ctype-ujis.cc:35772
int my_strnncollsp_simple(const CHARSET_INFO *, const uchar *, size_t, const uchar *, size_t)
Definition: ctype-simple.cc:179
static const char * strend(const char *s)
Definition: m_string.h:92
Header for compiler-dependent features.
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
unsigned char uchar
Definition: my_inttypes.h:52
long long int longlong
Definition: my_inttypes.h:55
uint64_t uint64
Definition: my_inttypes.h:69
uint16_t uint16
Definition: my_inttypes.h:65
uint32_t uint32
Definition: my_inttypes.h:67
Definition of the global "loglevel" enumeration.
loglevel
Definition: my_loglevel.h:41
Functions related to handling of plugins and other dynamically loaded libraries.
#define MYSQL_PLUGIN_IMPORT
Definition: my_sharedlib.h:71
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1052
Definition: buf0block_hint.cc:30
Definition: commit_order_queue.h:34
static std::string escape(const std::string &str)
Escapes (only) apostrophes.
Definition: st_units_of_measure.cc:37
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
static Value err()
Create a Value object that represents an error condition.
Definition: json_binary.cc:910
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:192
required string key
Definition: replication_asynchronous_connection_failover.proto:60
Definition: m_ctype.h:385
const uchar * to_lower
Definition: m_ctype.h:396
uchar levels_for_compare
Definition: m_ctype.h:415
const uchar * ident_map
Definition: m_ctype.h:404
uint mbmaxlenlen
Definition: m_ctype.h:410
const struct lex_state_maps_st * state_maps
Definition: m_ctype.h:403
const uchar * ctype
Definition: m_ctype.h:395
uint primary_number
Definition: m_ctype.h:387
const char * csname
Definition: m_ctype.h:390
my_wc_t max_sort_char
Definition: m_ctype.h:412
const MY_UNICASE_INFO * caseinfo
Definition: m_ctype.h:402
bool escape_with_backslash_is_dangerous
Definition: m_ctype.h:414
uint mbminlen
Definition: m_ctype.h:408
uint binary_number
Definition: m_ctype.h:388
uchar caseup_multiply
Definition: m_ctype.h:406
const uchar * sort_order
Definition: m_ctype.h:398
uint mbmaxlen
Definition: m_ctype.h:409
MY_COLLATION_HANDLER * coll
Definition: m_ctype.h:418
MY_CHARSET_HANDLER * cset
Definition: m_ctype.h:417
const char * m_coll_name
Definition: m_ctype.h:391
uint state
Definition: m_ctype.h:389
uchar casedn_multiply
Definition: m_ctype.h:407
const uchar * to_upper
Definition: m_ctype.h:397
const MY_UNI_IDX * tab_from_uni
Definition: m_ctype.h:401
struct Coll_param * coll_param
Definition: m_ctype.h:394
uint number
Definition: m_ctype.h:386
struct MY_UCA_INFO * uca
Definition: m_ctype.h:399
const uint16 * tab_to_uni
Definition: m_ctype.h:400
uchar pad_char
Definition: m_ctype.h:413
my_wc_t min_sort_char
Definition: m_ctype.h:411
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:427
const char * tailoring
Definition: m_ctype.h:393
const char * comment
Definition: m_ctype.h:392
uint strxfrm_multiply
Definition: m_ctype.h:405
Definition: str_uca_type.h:69
Definition: m_ctype.h:301
longlong(* strtoll10)(const CHARSET_INFO *cs, const char *nptr, const char **endptr, int *error)
Definition: m_ctype.h:372
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:333
double(* strntod)(const CHARSET_INFO *, const char *s, size_t l, const char **e, int *err)
Definition: m_ctype.h:370
size_t(* well_formed_len)(const CHARSET_INFO *, const char *b, const char *e, size_t nchars, int *error)
Definition: m_ctype.h:316
ulonglong(* strntoull10rnd)(const CHARSET_INFO *cs, const char *str, size_t length, int unsigned_fl, const char **endptr, int *error)
Definition: m_ctype.h:374
size_t(* caseup_str)(const CHARSET_INFO *, char *)
Definition: m_ctype.h:345
uint(* mbcharlen)(const CHARSET_INFO *, uint c)
Definition: m_ctype.h:305
long(* strntol)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:362
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:314
ulonglong(* strntoull)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:368
ulong(* strntoul)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:364
longlong(* strntoll)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:366
size_t(* numchars)(const CHARSET_INFO *, const char *b, const char *e)
Definition: m_ctype.h:306
size_t(* numcells)(const CHARSET_INFO *, const char *b, const char *e)
Definition: m_ctype.h:334
int(* ctype)(const CHARSET_INFO *cs, int *ctype, const uchar *s, const uchar *e)
Definition: m_ctype.h:341
void(* fill)(const CHARSET_INFO *, char *to, size_t len, int fill)
Definition: m_ctype.h:359
my_charset_conv_wc_mb wc_mb
Definition: m_ctype.h:338
size_t(* scan)(const CHARSET_INFO *, const char *b, const char *e, int sq)
Definition: m_ctype.h:377
bool(* init)(CHARSET_INFO *, MY_CHARSET_LOADER *loader)
Definition: m_ctype.h:302
my_charset_conv_mb_wc mb_wc
Definition: m_ctype.h:337
my_charset_conv_case caseup
Definition: m_ctype.h:348
size_t(* longlong10_to_str)(const CHARSET_INFO *, char *to, size_t n, int radix, longlong val)
Definition: m_ctype.h:356
size_t(* casedn_str)(const CHARSET_INFO *, char *)
Definition: m_ctype.h:346
size_t(* long10_to_str)(const CHARSET_INFO *, char *to, size_t n, int radix, long int val)
Definition: m_ctype.h:354
my_charset_conv_case casedn
Definition: m_ctype.h:349
uint(* ismbchar)(const CHARSET_INFO *, const char *, const char *)
Definition: m_ctype.h:304
size_t(* snprintf)(const CHARSET_INFO *, char *to, size_t n, const char *fmt,...)
Definition: m_ctype.h:352
Definition: m_ctype.h:174
void reporter(enum loglevel, uint, const char *)
Definition: charset.cc:344
virtual void * mem_malloc(size_t)
Definition: charset.cc:334
virtual void * mem_realloc(void *, size_t)
Definition: charset.cc:338
virtual void * once_alloc(size_t)
Definition: charset.cc:330
char errarg[192]
Definition: m_ctype.h:176
virtual void mem_free(void *)
Definition: charset.cc:342
virtual ~MY_CHARSET_LOADER()=default
uint errcode
Definition: m_ctype.h:175
virtual int add_collation(CHARSET_INFO *)
Definition: charset.cc:218
Definition: m_ctype.h:201
int(* strcasecmp)(const CHARSET_INFO *, const char *, const char *)
Definition: m_ctype.h:265
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:257
bool(* init)(CHARSET_INFO *, MY_CHARSET_LOADER *)
Definition: m_ctype.h:202
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:261
void(* uninit)(CHARSET_INFO *)
Definition: m_ctype.h:203
bool(* propagate)(const CHARSET_INFO *cs, const uchar *str, size_t len)
Definition: m_ctype.h:284
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:282
int(* strnncoll)(const CHARSET_INFO *, const uchar *, size_t, const uchar *, size_t, bool)
Definition: m_ctype.h:205
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:216
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:267
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:242
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:256
Definition: str_uca_type.h:120
uint32 sort
Definition: m_ctype.h:71
uint32 tolower
Definition: m_ctype.h:70
uint32 toupper
Definition: m_ctype.h:69
const MY_UNICASE_CHARACTER ** page
Definition: m_ctype.h:76
my_wc_t maxchar
Definition: m_ctype.h:75
uchar * ctype
Definition: m_ctype.h:88
uchar pctype
Definition: m_ctype.h:87
Definition: m_ctype.h:159
const uchar * tab
Definition: m_ctype.h:162
uint16 from
Definition: m_ctype.h:160
uint16 to
Definition: m_ctype.h:161
Definition: sql_chars.h:91
Definition: m_ctype.h:165
uint mb_len
Definition: m_ctype.h:168
uint end
Definition: m_ctype.h:167
uint beg
Definition: m_ctype.h:166
unsigned int uint
Definition: uca9-dump.cc:75
int n
Definition: xcom_base.cc:509