24#ifndef INCLUDE_MYSQL_STRINGS_M_CTYPE_H_
25#define INCLUDE_MYSQL_STRINGS_M_CTYPE_H_
59static inline void MY_PUT_MB2(
unsigned char *s, uint16_t code) {
109static constexpr uint32_t
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
129static 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
151static constexpr uint32_t
153static constexpr uint32_t
155static constexpr uint32_t
159static constexpr uint32_t
252 const uint8_t *, size_t, bool);
263 const uint8_t *, size_t);
289 unsigned num_codepoints,
const uint8_t *src,
size_t srclen,
304 char w_prefix,
char w_one,
char w_many,
size_t res_length,
305 char *min_str,
char *max_str,
size_t *min_len,
308 const char *wildstr,
const char *wildend,
int escape,
309 int w_one,
int w_many);
314 const char *s,
size_t s_length,
my_match_t *match,
329 uint64_t *nr1, uint64_t *nr2);
335 const uint8_t *,
const uint8_t *);
358 size_t nchars,
int *
error);
394 ...) MY_ATTRIBUTE((format(printf, 4, 5)));
399 int radix,
long long val);
405 const char **e,
int *
err);
407 int base,
const char **e,
int *
err);
409 const char **e,
int *
err);
411 int base,
const char **e,
int *
err);
413 const char **e,
int *
err);
415 const char **endptr,
int *
error);
417 size_t length,
int unsigned_fl,
418 const char **endptr,
int *
error);
494 const char *
str,
const char *str_end,
496 const char *wildend,
int escape,
497 int w_one,
int w_many);
500 const char *
str,
const char *
end,
502 size_t reject_length);
505 const char *
str,
size_t len);
517 assert(0 != strcmp(cs1->
csname,
"utf8"));
518 assert(0 != strcmp(cs2->
csname,
"utf8"));
519 return ((cs1 == cs2) || !strcmp(cs1->
csname, cs2->
csname));
528 const char *from,
size_t from_length,
533 const char *s,
const char *e);
537 const char *wildend,
int escape,
538 int w_many,
size_t *prefix_len);
560 return static_cast<char>(
cs->to_upper[
static_cast<uint8_t
>(ch)]);
564 return static_cast<char>(
cs->to_lower[
static_cast<uint8_t
>(ch)]);
568 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
573 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_U) != 0;
577 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_L) != 0;
581 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_NMR) != 0;
585 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_X) != 0;
589 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
594 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_SPC) != 0;
598 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_PNT) != 0;
602 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
607 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_CTR) != 0;
629 const uint8_t *src,
size_t srclen) {
630 return cs->coll->strnxfrm(
cs, dst, dstlen, dstlen, src, srclen, 0);
634 size_t a_length,
const uint8_t *b,
size_t b_length) {
635 return cs->coll->strnncoll(
cs, a, a_length, b, b_length,
false);
639 size_t s_length,
char w_prefix,
char w_one,
640 char w_many,
size_t res_length,
char *min_str,
641 char *max_str,
size_t *min_len,
size_t *max_len) {
642 return cs->coll->like_range(
cs, s, s_length, w_prefix, w_one, w_many,
643 res_length, min_str, max_str, min_len, max_len);
647 const char *str_end,
const char *wildstr,
648 const char *wildend,
int escape,
int w_one,
int w_many) {
649 return cs->coll->wildcmp(
cs,
str, str_end, wildstr, wildend,
escape, w_one,
655 return cs->coll->strcasecmp(
cs, s1, s2);
659 const char *
end,
size_t pos) {
660 return cs->cset->charpos(
cs, beg,
end, pos);
664 const unsigned char *
end,
size_t pos) {
665 return cs->cset->charpos(
cs, pointer_cast<const char *>(beg),
666 pointer_cast<const char *>(
end), pos);
670 return cs->cset->ismbchar !=
nullptr;
680 return cs->cset->ismbchar(
cs, pointer_cast<const char *>(
str),
681 pointer_cast<const char *>(
strend));
685 return cs->cset->mbcharlen(
cs, first_byte);
699 uint8_t second_byte) {
700 return cs->cset->mbcharlen(
cs,
701 ((first_byte & 0xFF) << 8) + (second_byte & 0xFF));
713 return cs->mbmaxlenlen;
731 return cs->cset->caseup_str(
cs,
str);
735 return cs->cset->casedn_str(
cs,
str);
739 int base,
const char **
end,
int *
err) {
744 size_t length,
int base,
const char **
end,
750 size_t length,
int base,
const char **
end,
756 size_t length,
int base,
const char **
end,
762 const char **
end,
int *
err) {
767 return (
cs->mbminlen == 1);
#define MYSQL_STRINGS_EXPORT
Definition: api.h:47
static Mysys_charset_loader * loader
Definition: charset.cc:185
User-specified callback interface for collation parser/initializer.
Definition: m_ctype.h:190
virtual ~MY_CHARSET_LOADER()
Definition: ctype.cc:1158
virtual void * mem_malloc(size_t size)
Definition: m_ctype.h:235
MY_CHARSET_LOADER()=default
virtual void * once_alloc(size_t)
Allocate-and-forget version of malloc().
Definition: ctype.cc:1286
MY_CHARSET_LOADER & operator=(const MY_CHARSET_LOADER &&)=delete
MY_CHARSET_LOADER(const MY_CHARSET_LOADER &)=delete
virtual void mem_free(void *ptr)
Definition: m_ctype.h:236
std::deque< void * > m_delete_list
Definition: m_ctype.h:239
int add_collation(CHARSET_INFO *cs)
Collation parser helper function (not overloadable).
Definition: ctype.cc:1164
MY_CHARSET_LOADER(const MY_CHARSET_LOADER &&)=delete
virtual void * read_file(const char *path, size_t *size)=0
Loads a file by its OS path into collation parser/initializer.
MY_CHARSET_LOADER & operator=(const MY_CHARSET_LOADER &)=delete
virtual void reporter(enum loglevel loglevel, unsigned errcode,...)=0
Intercepts error messages from collation parser/initializer.
static int flags[50]
Definition: hp_test1.cc:40
#define malloc(A)
Definition: lexyy.cc:914
#define free(A)
Definition: lexyy.cc:915
static constexpr int MY_CS_TOOSMALL4
Definition: m_ctype.h:97
static constexpr int MY_SEQ_SPACES
Definition: m_ctype.h:105
static constexpr uint32_t MY_CS_PUREASCII
Definition: m_ctype.h:140
static constexpr uint8_t MY_CHAR_CTR
Definition: m_ctype.h:546
static void MY_PUT_MB2(unsigned char *s, uint16_t code)
Definition: m_ctype.h:59
static constexpr int MY_CS_TOOSMALL
Definition: m_ctype.h:89
static constexpr uint8_t MY_CHAR_L
Definition: m_ctype.h:542
int myf
Definition: m_ctype.h:50
char my_tolower(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:563
static constexpr uint8_t MY_CHAR_NMR
Definition: m_ctype.h:543
int my_strcasecmp(const CHARSET_INFO *cs, const char *s1, const char *s2)
Definition: m_ctype.h:653
bool my_like_range(const CHARSET_INFO *cs, 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:638
static constexpr uint32_t MY_REPERTOIRE_UNICODE30
Definition: m_ctype.h:156
static constexpr uint32_t MY_CS_READY
Definition: m_ctype.h:132
static constexpr uint32_t MY_CS_INLINE
Definition: m_ctype.h:148
static constexpr uint8_t MY_CHAR_PNT
Definition: m_ctype.h:545
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:509
static constexpr uint32_t MY_CS_NONASCII
Definition: m_ctype.h:142
int(* my_charset_conv_wc_mb)(const CHARSET_INFO *, my_wc_t, uint8_t *, uint8_t *)
Definition: m_ctype.h:336
static constexpr uint32_t MY_CS_STRNXFRM
Definition: m_ctype.h:124
bool my_isvar_start(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:614
constexpr int MY_CS_NAME_SIZE
Definition: m_ctype.h:46
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb3_tolower_ci
Definition: ctype-utf8.cc:5829
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb4_bin
Definition: ctype-utf8.cc:7822
static constexpr uint32_t MY_CS_BINSORT
Definition: m_ctype.h:120
bool my_isxdigit(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:584
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_latin1_bin
Definition: ctype-latin1.cc:671
static constexpr int MY_CS_ILUNI
Definition: m_ctype.h:87
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb4_0900_ai_ci
Definition: ctype-uca.cc:9610
static constexpr uint32_t MY_STRXFRM_PAD_TO_MAXLEN
Definition: m_ctype.h:160
bool my_isupper(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:572
int64_t my_strntoll(const CHARSET_INFO *cs, const char *str, size_t length, int base, const char **end, int *err)
Definition: m_ctype.h:749
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb3_unicode_ci
Definition: ctype-uca.cc:6131
size_t my_charpos(const CHARSET_INFO *cs, const char *beg, const char *end, size_t pos)
Definition: m_ctype.h:658
MYSQL_STRINGS_EXPORT 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, unsigned *errors)
Convert a string between two character sets.
Definition: ctype.cc:912
uint64_t my_strntoull(const CHARSET_INFO *cs, const char *str, size_t length, int base, const char **end, int *err)
Definition: m_ctype.h:755
bool my_isalnum(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:588
static constexpr uint32_t MY_CS_LOWER_SORT
Definition: m_ctype.h:146
int my_wildcmp(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: m_ctype.h:646
size_t my_casedn_str(const CHARSET_INFO *cs, char *str)
Definition: m_ctype.h:734
static constexpr uint8_t MY_CHAR_SPC
Definition: m_ctype.h:544
MYSQL_STRINGS_EXPORT 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:999
bool my_ispunct(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:597
static constexpr uint32_t MY_CS_UNICODE_SUPPLEMENT
Definition: m_ctype.h:144
bool my_isvar(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:610
unsigned long my_strntoul(const CHARSET_INFO *cs, const char *str, size_t length, int base, const char **end, int *err)
Definition: m_ctype.h:743
bool my_isdigit(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:580
static constexpr int MY_CS_TOOSMALL3
Definition: m_ctype.h:93
unsigned my_mbcharlen_2(const CHARSET_INFO *cs, uint8_t first_byte, uint8_t second_byte)
Get the length of gb18030 code by the given two leading bytes.
Definition: m_ctype.h:698
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:338
MYSQL_STRINGS_EXPORT unsigned my_string_repertoire(const CHARSET_INFO *cs, const char *str, size_t len)
Definition: ctype.cc:778
int(* my_charset_conv_mb_wc)(const CHARSET_INFO *, my_wc_t *, const uint8_t *, const uint8_t *)
Definition: m_ctype.h:334
static constexpr uint32_t MY_CS_AVAILABLE
Definition: m_ctype.h:134
bool my_isspace(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:593
double my_strntod(const CHARSET_INFO *cs, const char *str, size_t length, const char **end, int *err)
Definition: m_ctype.h:761
bool use_strnxfrm(const CHARSET_INFO *cs)
Definition: m_ctype.h:623
static constexpr uint32_t MY_REPERTOIRE_EXTENDED
Definition: m_ctype.h:154
unsigned long 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:57
static constexpr int MY_SEQ_INTTAIL
Definition: m_ctype.h:104
bool my_iscntrl(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:606
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_latin1
Definition: ctype-latin1.cc:366
unsigned my_mbcharlen(const CHARSET_INFO *cs, unsigned first_byte)
Definition: m_ctype.h:684
static constexpr uint32_t MY_CHARSET_UNDEFINED
Definition: m_ctype.h:110
static constexpr int MY_CS_TOOSMALL5
Definition: m_ctype.h:99
static constexpr uint32_t MY_CS_UNICODE
Definition: m_ctype.h:130
unsigned my_ismbchar(const CHARSET_INFO *cs, const char *str, const char *strend)
Definition: m_ctype.h:673
bool my_isascii(char ch)
Definition: m_ctype.h:557
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb4_general_ci
Definition: ctype-utf8.cc:7786
static constexpr uint32_t MY_CS_HIDDEN
Definition: m_ctype.h:138
MYSQL_STRINGS_EXPORT 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
MYSQL_STRINGS_EXPORT unsigned 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:971
bool my_ismb1st(const CHARSET_INFO *cs, unsigned leading_byte)
Judge if the given byte is a possible leading byte for a charset.
Definition: m_ctype.h:725
static constexpr int MY_CS_ILSEQ
Definition: m_ctype.h:85
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb4_0900_bin
Definition: ctype-uca.cc:11481
bool my_charset_same(const CHARSET_INFO *cs1, const CHARSET_INFO *cs2)
Definition: m_ctype.h:516
size_t my_strnxfrm(const CHARSET_INFO *cs, uint8_t *dst, size_t dstlen, const uint8_t *src, size_t srclen)
Definition: m_ctype.h:628
MYSQL_STRINGS_EXPORT int(* my_string_stack_guard)(int)
Definition: collations_internal.cc:43
static constexpr uint32_t MY_CS_CONFIG_UNUSED
Definition: m_ctype.h:114
long my_strntol(const CHARSET_INFO *cs, const char *str, size_t length, int base, const char **end, int *err)
Definition: m_ctype.h:738
static constexpr uint32_t MY_CS_LOADED
Definition: m_ctype.h:118
static constexpr uint32_t MY_CS_INDEX_UNUSED
Definition: m_ctype.h:116
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb3_bin
Definition: ctype-utf8.cc:5899
constexpr const char * CHARSET_DIR
Definition: m_ctype.h:48
bool use_mb(const CHARSET_INFO *cs)
Definition: m_ctype.h:669
MYSQL_STRINGS_EXPORT unsigned my_charset_repertoire(const CHARSET_INFO *cs)
Definition: ctype.cc:800
unsigned my_mbmaxlenlen(const CHARSET_INFO *cs)
Get the maximum length of leading bytes needed to determine the length of a multi-byte gb18030 code.
Definition: m_ctype.h:712
bool my_isalpha(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:567
size_t my_caseup_str(const CHARSET_INFO *cs, char *str)
Definition: m_ctype.h:730
static constexpr uint32_t MY_REPERTOIRE_ASCII
Definition: m_ctype.h:152
bool is_supported_parser_charset(const CHARSET_INFO *cs)
Definition: m_ctype.h:766
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb3_general_ci
Definition: ctype-utf8.cc:5794
MYSQL_STRINGS_EXPORT unsigned my_strxfrm_flag_normalize(unsigned flags)
Definition: ctype-simple.cc:1497
MYSQL_STRINGS_EXPORT bool my_charset_is_ascii_based(const CHARSET_INFO *cs)
Detect whether a character set is ASCII compatible.
Definition: m_ctype.h:512
static constexpr uint8_t MY_CHAR_X
Definition: m_ctype.h:548
static constexpr int MY_CS_TOOSMALL2
Definition: m_ctype.h:91
MYSQL_STRINGS_EXPORT 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:1040
bool my_islower(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:576
static constexpr uint32_t MY_CS_PRIMARY
Definition: m_ctype.h:122
bool my_binary_compare(const CHARSET_INFO *cs)
Definition: m_ctype.h:619
static constexpr uint32_t MY_CS_COMPILED
Definition: m_ctype.h:112
static constexpr uint8_t MY_CHAR_B
Definition: m_ctype.h:547
int my_strnncoll(const CHARSET_INFO *cs, const uint8_t *a, size_t a_length, const uint8_t *b, size_t b_length)
Definition: m_ctype.h:633
bool my_isgraph(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:601
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_filename
Definition: ctype-utf8.cc:7056
static constexpr uint32_t MY_CS_CSSORT
Definition: m_ctype.h:136
char my_toupper(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:559
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf32_unicode_ci
Definition: ctype-uca.cc:7836
Pad_attribute
Definition: m_ctype.h:244
@ NO_PAD
Definition: m_ctype.h:244
@ PAD_SPACE
Definition: m_ctype.h:244
static constexpr int MY_CS_TOOSMALL6
Definition: m_ctype.h:101
static constexpr uint8_t MY_CHAR_U
Definition: m_ctype.h:541
static const char * strend(const char *s)
Definition: m_string.h:69
Definition of the global "loglevel" enumeration.
loglevel
Definition: my_loglevel.h:41
static char * path
Definition: mysqldump.cc:149
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1081
Definition: commit_order_queue.h:34
static std::string escape(const std::string &str)
Escapes (only) apostrophes.
Definition: st_units_of_measure.cc:39
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:927
size_t size(const char *const c)
Definition: base64.h:46
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:423
uint8_t casedn_multiply
Definition: m_ctype.h:445
uint8_t pad_char
Definition: m_ctype.h:451
const struct lex_state_maps_st * state_maps
Definition: m_ctype.h:441
const uint16_t * tab_to_uni
Definition: m_ctype.h:438
unsigned binary_number
Definition: m_ctype.h:426
const uint8_t * ctype
Definition: m_ctype.h:433
const char * csname
Definition: m_ctype.h:428
my_wc_t max_sort_char
Definition: m_ctype.h:450
const MY_UNICASE_INFO * caseinfo
Definition: m_ctype.h:440
bool escape_with_backslash_is_dangerous
Definition: m_ctype.h:452
unsigned number
Definition: m_ctype.h:424
const uint8_t * to_lower
Definition: m_ctype.h:434
uint8_t caseup_multiply
Definition: m_ctype.h:444
unsigned mbmaxlenlen
Definition: m_ctype.h:448
unsigned mbmaxlen
Definition: m_ctype.h:447
unsigned strxfrm_multiply
Definition: m_ctype.h:443
MY_COLLATION_HANDLER * coll
Definition: m_ctype.h:456
const uint8_t * sort_order
Definition: m_ctype.h:436
MY_CHARSET_HANDLER * cset
Definition: m_ctype.h:455
const char * m_coll_name
Definition: m_ctype.h:429
const uint8_t * ident_map
Definition: m_ctype.h:442
uint8_t levels_for_compare
Definition: m_ctype.h:453
unsigned mbminlen
Definition: m_ctype.h:446
const MY_UNI_IDX * tab_from_uni
Definition: m_ctype.h:439
struct Coll_param * coll_param
Definition: m_ctype.h:432
struct MY_UCA_INFO * uca
Definition: m_ctype.h:437
const uint8_t * to_upper
Definition: m_ctype.h:435
my_wc_t min_sort_char
Definition: m_ctype.h:449
unsigned primary_number
Definition: m_ctype.h:425
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:465
const char * tailoring
Definition: m_ctype.h:431
unsigned state
Definition: m_ctype.h:427
const char * comment
Definition: m_ctype.h:430
Definition: str_uca_type.h:74
Helper structure to return error messages from collation parser/initializer.
Definition: m_ctype.h:181
unsigned errcode
See include/mysys_err.h.
Definition: m_ctype.h:183
char errarg[errmsg_size]
Error message text.
Definition: m_ctype.h:184
static constexpr int errmsg_size
Definition: m_ctype.h:182
Definition: m_ctype.h:342
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:374
double(* strntod)(const CHARSET_INFO *, const char *s, size_t l, const char **e, int *err)
Definition: m_ctype.h:412
long long(* strtoll10)(const CHARSET_INFO *cs, const char *nptr, const char **endptr, int *error)
Definition: m_ctype.h:414
int(* ctype)(const CHARSET_INFO *cs, int *ctype, const uint8_t *s, const uint8_t *e)
Definition: m_ctype.h:382
size_t(* well_formed_len)(const CHARSET_INFO *, const char *b, const char *e, size_t nchars, int *error)
Definition: m_ctype.h:357
size_t(* caseup_str)(const CHARSET_INFO *, char *)
Definition: m_ctype.h:386
unsigned long long(* strntoull10rnd)(const CHARSET_INFO *cs, const char *str, size_t length, int unsigned_fl, const char **endptr, int *error)
Definition: m_ctype.h:416
unsigned(* ismbchar)(const CHARSET_INFO *, const char *, const char *)
Definition: m_ctype.h:345
unsigned long long(* strntoull)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:410
unsigned long(* strntoul)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:406
bool(* init)(CHARSET_INFO *, MY_CHARSET_LOADER *loader, MY_CHARSET_ERRMSG *)
Definition: m_ctype.h:343
long(* strntol)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:404
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:355
size_t(* longlong10_to_str)(const CHARSET_INFO *, char *to, size_t n, int radix, long long val)
Definition: m_ctype.h:398
size_t(* numchars)(const CHARSET_INFO *, const char *b, const char *e)
Definition: m_ctype.h:347
size_t(* numcells)(const CHARSET_INFO *, const char *b, const char *e)
Definition: m_ctype.h:375
void(* fill)(const CHARSET_INFO *, char *to, size_t len, int fill)
Definition: m_ctype.h:401
my_charset_conv_wc_mb wc_mb
Definition: m_ctype.h:379
size_t(* scan)(const CHARSET_INFO *, const char *b, const char *e, int sq)
Definition: m_ctype.h:419
long long(* strntoll)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:408
my_charset_conv_mb_wc mb_wc
Definition: m_ctype.h:378
unsigned(* mbcharlen)(const CHARSET_INFO *, unsigned c)
Definition: m_ctype.h:346
my_charset_conv_case caseup
Definition: m_ctype.h:389
size_t(* casedn_str)(const CHARSET_INFO *, char *)
Definition: m_ctype.h:387
size_t(* long10_to_str)(const CHARSET_INFO *, char *to, size_t n, int radix, long int val)
Definition: m_ctype.h:396
my_charset_conv_case casedn
Definition: m_ctype.h:390
size_t(* snprintf)(const CHARSET_INFO *, char *to, size_t n, const char *fmt,...)
Definition: m_ctype.h:393
Definition: m_ctype.h:247
int(* strcasecmp)(const CHARSET_INFO *, const char *, const char *)
Definition: m_ctype.h:311
size_t(* strnxfrm)(const CHARSET_INFO *, uint8_t *dst, size_t dstlen, unsigned num_codepoints, const uint8_t *src, size_t srclen, unsigned flags)
Transform the string into a form such that memcmp() between transformed strings yields the correct co...
Definition: m_ctype.h:288
unsigned(* strstr)(const CHARSET_INFO *, const char *b, size_t b_length, const char *s, size_t s_length, my_match_t *match, unsigned nmatch)
Definition: m_ctype.h:313
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:303
int(* strnncoll)(const CHARSET_INFO *, const uint8_t *, size_t, const uint8_t *, size_t, bool)
Definition: m_ctype.h:251
void(* hash_sort)(const CHARSET_INFO *cs, const uint8_t *key, size_t len, uint64_t *nr1, uint64_t *nr2)
Compute a sort hash for the given key.
Definition: m_ctype.h:328
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:307
bool(* propagate)(const CHARSET_INFO *cs, const uint8_t *str, size_t len)
Definition: m_ctype.h:330
bool(* init)(CHARSET_INFO *, MY_CHARSET_LOADER *, MY_CHARSET_ERRMSG *)
Definition: m_ctype.h:248
int(* strnncollsp)(const CHARSET_INFO *, const uint8_t *, size_t, const uint8_t *, size_t)
Compare the two strings under the pad rules given by the collation.
Definition: m_ctype.h:262
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:302
void(* uninit)(CHARSET_INFO *, MY_CHARSET_LOADER *)
Definition: m_ctype.h:249
Definition: str_uca_type.h:125
uint32_t tolower
Definition: m_ctype.h:66
uint32_t toupper
Definition: m_ctype.h:65
uint32_t sort
Definition: m_ctype.h:67
const MY_UNICASE_CHARACTER ** page
Definition: m_ctype.h:72
my_wc_t maxchar
Definition: m_ctype.h:71
uint8_t * ctype
Definition: m_ctype.h:79
uint8_t pctype
Definition: m_ctype.h:78
Definition: m_ctype.h:164
uint16_t to
Definition: m_ctype.h:166
uint16_t from
Definition: m_ctype.h:165
const uint8_t * tab
Definition: m_ctype.h:167
Definition: sql_chars.h:90
Definition: m_ctype.h:170
unsigned mb_len
Definition: m_ctype.h:173
unsigned beg
Definition: m_ctype.h:171
unsigned end
Definition: m_ctype.h:172
int n
Definition: xcom_base.cc:509