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
251 const uint8_t *t,
size_t tlen,
bool t_is_prefix);
262 const uint8_t *, size_t);
288 unsigned num_codepoints,
const uint8_t *src,
size_t srclen,
303 char w_prefix,
char w_one,
char w_many,
size_t res_length,
304 char *min_str,
char *max_str,
size_t *min_len,
307 const char *wildstr,
const char *wildend,
int escape,
308 int w_one,
int w_many);
313 const char *s,
size_t s_length,
my_match_t *match);
327 uint64_t *nr1, uint64_t *nr2);
333 const uint8_t *,
const uint8_t *);
356 size_t nchars,
int *
error);
392 ...) MY_ATTRIBUTE((format(printf, 4, 5)));
397 int radix,
long long val);
403 const char **e,
int *
err);
405 int base,
const char **e,
int *
err);
407 const char **e,
int *
err);
409 int base,
const char **e,
int *
err);
411 const char **e,
int *
err);
413 const char **endptr,
int *
error);
415 size_t length,
int unsigned_fl,
416 const char **endptr,
int *
error);
492 const char *
str,
const char *str_end,
494 const char *wildend,
int escape,
495 int w_one,
int w_many);
498 const char *
str,
const char *
end,
500 size_t reject_length);
503 const char *
str,
size_t len);
515 assert(0 != strcmp(cs1->
csname,
"utf8"));
516 assert(0 != strcmp(cs2->
csname,
"utf8"));
517 return ((cs1 == cs2) || !strcmp(cs1->
csname, cs2->
csname));
526 const char *from,
size_t from_length,
531 const char *s,
const char *e);
535 const char *wildend,
int escape,
536 int w_many,
size_t *prefix_len);
558 return static_cast<char>(
cs->to_upper[
static_cast<uint8_t
>(ch)]);
562 return static_cast<char>(
cs->to_lower[
static_cast<uint8_t
>(ch)]);
566 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
571 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_U) != 0;
575 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_L) != 0;
579 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_NMR) != 0;
583 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_X) != 0;
587 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
592 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_SPC) != 0;
596 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_PNT) != 0;
600 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
605 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_CTR) != 0;
627 const uint8_t *src,
size_t srclen) {
628 return cs->coll->strnxfrm(
cs, dst, dstlen, dstlen, src, srclen, 0);
632 size_t a_length,
const uint8_t *b,
size_t b_length) {
633 return cs->coll->strnncoll(
cs, a, a_length, b, b_length,
false);
637 size_t s_length,
char w_prefix,
char w_one,
638 char w_many,
size_t res_length,
char *min_str,
639 char *max_str,
size_t *min_len,
size_t *max_len) {
640 return cs->coll->like_range(
cs, s, s_length, w_prefix, w_one, w_many,
641 res_length, min_str, max_str, min_len, max_len);
645 const char *str_end,
const char *wildstr,
646 const char *wildend,
int escape,
int w_one,
int w_many) {
647 return cs->coll->wildcmp(
cs,
str, str_end, wildstr, wildend,
escape, w_one,
653 return cs->coll->strcasecmp(
cs, s1, s2);
657 const char *
end,
size_t pos) {
658 return cs->cset->charpos(
cs, beg,
end, pos);
662 const unsigned char *
end,
size_t pos) {
663 return cs->cset->charpos(
cs, pointer_cast<const char *>(beg),
664 pointer_cast<const char *>(
end), pos);
668 return cs->cset->ismbchar !=
nullptr;
678 return cs->cset->ismbchar(
cs, pointer_cast<const char *>(
str),
679 pointer_cast<const char *>(
strend));
683 return cs->cset->mbcharlen(
cs, first_byte);
697 uint8_t second_byte) {
698 return cs->cset->mbcharlen(
cs,
699 ((first_byte & 0xFF) << 8) + (second_byte & 0xFF));
711 return cs->mbmaxlenlen;
729 return cs->cset->caseup_str(
cs,
str);
733 return cs->cset->casedn_str(
cs,
str);
737 int base,
const char **
end,
int *
err) {
742 size_t length,
int base,
const char **
end,
748 size_t length,
int base,
const char **
end,
754 size_t length,
int base,
const char **
end,
760 const char **
end,
int *
err) {
765 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:189
virtual ~MY_CHARSET_LOADER()
Definition: ctype.cc:1174
virtual void * mem_malloc(size_t size)
Definition: m_ctype.h:234
MY_CHARSET_LOADER()=default
virtual void * once_alloc(size_t)
Allocate-and-forget version of malloc().
Definition: ctype.cc:1302
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:235
std::deque< void * > m_delete_list
Definition: m_ctype.h:238
int add_collation(CHARSET_INFO *cs)
Collation parser helper function (not overloadable).
Definition: ctype.cc:1180
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:544
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:540
int myf
Definition: m_ctype.h:50
char my_tolower(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:561
static constexpr uint8_t MY_CHAR_NMR
Definition: m_ctype.h:541
int my_strcasecmp(const CHARSET_INFO *cs, const char *s1, const char *s2)
Definition: m_ctype.h:651
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:636
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:543
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:500
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:334
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:612
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:582
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_latin1_bin
Definition: ctype-latin1.cc:672
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:570
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:747
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:656
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:928
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:753
bool my_isalnum(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:586
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:644
size_t my_casedn_str(const CHARSET_INFO *cs, char *str)
Definition: m_ctype.h:732
static constexpr uint8_t MY_CHAR_SPC
Definition: m_ctype.h:542
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:1015
bool my_ispunct(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:595
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:608
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:741
bool my_isdigit(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:578
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:696
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:336
MYSQL_STRINGS_EXPORT unsigned my_string_repertoire(const CHARSET_INFO *cs, const char *str, size_t len)
Definition: ctype.cc:794
int(* my_charset_conv_mb_wc)(const CHARSET_INFO *, my_wc_t *, const uint8_t *, const uint8_t *)
Definition: m_ctype.h:332
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:591
double my_strntod(const CHARSET_INFO *cs, const char *str, size_t length, const char **end, int *err)
Definition: m_ctype.h:759
bool use_strnxfrm(const CHARSET_INFO *cs)
Definition: m_ctype.h:621
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:604
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:682
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:671
bool my_isascii(char ch)
Definition: m_ctype.h:555
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:987
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:723
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:514
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:626
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:736
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:667
MYSQL_STRINGS_EXPORT unsigned my_charset_repertoire(const CHARSET_INFO *cs)
Definition: ctype.cc:816
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:710
bool my_isalpha(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:565
size_t my_caseup_str(const CHARSET_INFO *cs, char *str)
Definition: m_ctype.h:728
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:764
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:1488
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:510
static constexpr uint8_t MY_CHAR_X
Definition: m_ctype.h:546
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:1030
bool my_islower(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:574
static constexpr uint32_t MY_CS_PRIMARY
Definition: m_ctype.h:122
bool my_binary_compare(const CHARSET_INFO *cs)
Definition: m_ctype.h:617
static constexpr uint32_t MY_CS_COMPILED
Definition: m_ctype.h:112
static constexpr uint8_t MY_CHAR_B
Definition: m_ctype.h:545
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:631
bool my_isgraph(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:599
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:557
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf32_unicode_ci
Definition: ctype-uca.cc:7836
Pad_attribute
Definition: m_ctype.h:243
@ NO_PAD
Definition: m_ctype.h:243
@ PAD_SPACE
Definition: m_ctype.h:243
static constexpr int MY_CS_TOOSMALL6
Definition: m_ctype.h:101
static constexpr uint8_t MY_CHAR_U
Definition: m_ctype.h:539
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:1105
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:908
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:421
uint8_t casedn_multiply
Definition: m_ctype.h:443
uint8_t pad_char
Definition: m_ctype.h:449
const struct lex_state_maps_st * state_maps
Definition: m_ctype.h:439
const uint16_t * tab_to_uni
Definition: m_ctype.h:436
unsigned binary_number
Definition: m_ctype.h:424
const uint8_t * ctype
Definition: m_ctype.h:431
const char * csname
Definition: m_ctype.h:426
my_wc_t max_sort_char
Definition: m_ctype.h:448
const MY_UNICASE_INFO * caseinfo
Definition: m_ctype.h:438
bool escape_with_backslash_is_dangerous
Definition: m_ctype.h:450
unsigned number
Definition: m_ctype.h:422
const uint8_t * to_lower
Definition: m_ctype.h:432
uint8_t caseup_multiply
Definition: m_ctype.h:442
unsigned mbmaxlenlen
Definition: m_ctype.h:446
unsigned mbmaxlen
Definition: m_ctype.h:445
unsigned strxfrm_multiply
Definition: m_ctype.h:441
MY_COLLATION_HANDLER * coll
Definition: m_ctype.h:454
const uint8_t * sort_order
Definition: m_ctype.h:434
MY_CHARSET_HANDLER * cset
Definition: m_ctype.h:453
const char * m_coll_name
Definition: m_ctype.h:427
const uint8_t * ident_map
Definition: m_ctype.h:440
uint8_t levels_for_compare
Definition: m_ctype.h:451
unsigned mbminlen
Definition: m_ctype.h:444
const MY_UNI_IDX * tab_from_uni
Definition: m_ctype.h:437
struct Coll_param * coll_param
Definition: m_ctype.h:430
struct MY_UCA_INFO * uca
Definition: m_ctype.h:435
const uint8_t * to_upper
Definition: m_ctype.h:433
my_wc_t min_sort_char
Definition: m_ctype.h:447
unsigned primary_number
Definition: m_ctype.h:423
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:463
const char * tailoring
Definition: m_ctype.h:429
unsigned state
Definition: m_ctype.h:425
const char * comment
Definition: m_ctype.h:428
Definition: str_uca_type.h:74
Helper structure to return error messages from collation parser/initializer.
Definition: m_ctype.h:180
unsigned errcode
See include/mysys_err.h.
Definition: m_ctype.h:182
char errarg[errmsg_size]
Error message text.
Definition: m_ctype.h:183
static constexpr int errmsg_size
Definition: m_ctype.h:181
Definition: m_ctype.h:340
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:372
double(* strntod)(const CHARSET_INFO *, const char *s, size_t l, const char **e, int *err)
Definition: m_ctype.h:410
long long(* strtoll10)(const CHARSET_INFO *cs, const char *nptr, const char **endptr, int *error)
Definition: m_ctype.h:412
int(* ctype)(const CHARSET_INFO *cs, int *ctype, const uint8_t *s, const uint8_t *e)
Definition: m_ctype.h:380
size_t(* well_formed_len)(const CHARSET_INFO *, const char *b, const char *e, size_t nchars, int *error)
Definition: m_ctype.h:355
size_t(* caseup_str)(const CHARSET_INFO *, char *)
Definition: m_ctype.h:384
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:414
unsigned(* ismbchar)(const CHARSET_INFO *, const char *, const char *)
Definition: m_ctype.h:343
unsigned long long(* strntoull)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:408
unsigned long(* strntoul)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:404
bool(* init)(CHARSET_INFO *, MY_CHARSET_LOADER *loader, MY_CHARSET_ERRMSG *)
Definition: m_ctype.h:341
long(* strntol)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:402
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:353
size_t(* longlong10_to_str)(const CHARSET_INFO *, char *to, size_t n, int radix, long long val)
Definition: m_ctype.h:396
size_t(* numchars)(const CHARSET_INFO *, const char *b, const char *e)
Definition: m_ctype.h:345
size_t(* numcells)(const CHARSET_INFO *, const char *b, const char *e)
Definition: m_ctype.h:373
void(* fill)(const CHARSET_INFO *, char *to, size_t len, int fill)
Definition: m_ctype.h:399
my_charset_conv_wc_mb wc_mb
Definition: m_ctype.h:377
size_t(* scan)(const CHARSET_INFO *, const char *b, const char *e, int sq)
Definition: m_ctype.h:417
long long(* strntoll)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:406
my_charset_conv_mb_wc mb_wc
Definition: m_ctype.h:376
unsigned(* mbcharlen)(const CHARSET_INFO *, unsigned c)
Definition: m_ctype.h:344
my_charset_conv_case caseup
Definition: m_ctype.h:387
size_t(* casedn_str)(const CHARSET_INFO *, char *)
Definition: m_ctype.h:385
size_t(* long10_to_str)(const CHARSET_INFO *, char *to, size_t n, int radix, long int val)
Definition: m_ctype.h:394
my_charset_conv_case casedn
Definition: m_ctype.h:388
size_t(* snprintf)(const CHARSET_INFO *, char *to, size_t n, const char *fmt,...)
Definition: m_ctype.h:391
Definition: m_ctype.h:246
int(* strcasecmp)(const CHARSET_INFO *, const char *, const char *)
Definition: m_ctype.h:310
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:287
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:302
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:326
int(* strnncoll)(const CHARSET_INFO *, const uint8_t *s, size_t slen, const uint8_t *t, size_t tlen, bool t_is_prefix)
Definition: m_ctype.h:250
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:306
bool(* propagate)(const CHARSET_INFO *cs, const uint8_t *str, size_t len)
Definition: m_ctype.h:328
bool(* strstr)(const CHARSET_INFO *, const char *b, size_t b_length, const char *s, size_t s_length, my_match_t *match)
Definition: m_ctype.h:312
bool(* init)(CHARSET_INFO *, MY_CHARSET_LOADER *, MY_CHARSET_ERRMSG *)
Definition: m_ctype.h:247
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:261
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:301
void(* uninit)(CHARSET_INFO *, MY_CHARSET_LOADER *)
Definition: m_ctype.h:248
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:172
unsigned end
Definition: m_ctype.h:171
int n
Definition: xcom_base.cc:509