23#ifndef INCLUDE_MYSQL_STRINGS_M_CTYPE_H_
24#define INCLUDE_MYSQL_STRINGS_M_CTYPE_H_
58static inline void MY_PUT_MB2(
unsigned char *s, uint16_t code) {
108static constexpr uint32_t
110static constexpr uint32_t
112static constexpr uint32_t
114static constexpr uint32_t
116static constexpr uint32_t
118static constexpr uint32_t
120static constexpr uint32_t
122static constexpr uint32_t
128static constexpr uint32_t
130static constexpr uint32_t
132static constexpr uint32_t
134static constexpr uint32_t
136static constexpr uint32_t
138static constexpr uint32_t
140static constexpr uint32_t
142static constexpr uint32_t
144static constexpr uint32_t
146static constexpr uint32_t
150static constexpr uint32_t
152static constexpr uint32_t
154static constexpr uint32_t
158static constexpr uint32_t
251 const uint8_t *, size_t, bool);
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,
328 uint64_t *nr1, uint64_t *nr2);
334 const uint8_t *,
const uint8_t *);
357 size_t nchars,
int *
error);
393 ...) MY_ATTRIBUTE((format(printf, 4, 5)));
398 int radix,
long long val);
404 const char **e,
int *
err);
406 int base,
const char **e,
int *
err);
408 const char **e,
int *
err);
410 int base,
const char **e,
int *
err);
412 const char **e,
int *
err);
414 const char **endptr,
int *
error);
416 size_t length,
int unsigned_fl,
417 const char **endptr,
int *
error);
496 const char *
str,
const char *str_end,
498 const char *wildend,
int escape,
499 int w_one,
int w_many);
502 const char *
str,
const char *
end,
504 size_t reject_length);
507 const char *
str,
size_t len);
519 assert(0 != strcmp(cs1->
csname,
"utf8"));
520 assert(0 != strcmp(cs2->
csname,
"utf8"));
521 return ((cs1 == cs2) || !strcmp(cs1->
csname, cs2->
csname));
530 const char *from,
size_t from_length,
535 const char *s,
const char *e);
539 const char *wildend,
int escape,
540 int w_many,
size_t *prefix_len);
562 return static_cast<char>(
cs->to_upper[
static_cast<uint8_t
>(ch)]);
566 return static_cast<char>(
cs->to_lower[
static_cast<uint8_t
>(ch)]);
570 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
575 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_U) != 0;
579 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_L) != 0;
583 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_NMR) != 0;
587 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_X) != 0;
591 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
596 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_SPC) != 0;
600 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_PNT) != 0;
604 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
609 return ((
cs->ctype + 1)[
static_cast<uint8_t
>(ch)] &
MY_CHAR_CTR) != 0;
631 const uint8_t *src,
size_t srclen) {
632 return cs->coll->strnxfrm(
cs, dst, dstlen, dstlen, src, srclen, 0);
636 size_t a_length,
const uint8_t *b,
size_t b_length) {
637 return cs->coll->strnncoll(
cs, a, a_length, b, b_length,
false);
641 size_t s_length,
char w_prefix,
char w_one,
642 char w_many,
size_t res_length,
char *min_str,
643 char *max_str,
size_t *min_len,
size_t *max_len) {
644 return cs->coll->like_range(
cs, s, s_length, w_prefix, w_one, w_many,
645 res_length, min_str, max_str, min_len, max_len);
649 const char *str_end,
const char *wildstr,
650 const char *wildend,
int escape,
int w_one,
int w_many) {
651 return cs->coll->wildcmp(
cs,
str, str_end, wildstr, wildend,
escape, w_one,
657 return cs->coll->strcasecmp(
cs, s1, s2);
661 const char *
end,
size_t pos) {
662 return cs->cset->charpos(
cs, beg,
end, pos);
666 const unsigned char *
end,
size_t pos) {
667 return cs->cset->charpos(
cs, pointer_cast<const char *>(beg),
668 pointer_cast<const char *>(
end), pos);
672 return cs->cset->ismbchar !=
nullptr;
682 return cs->cset->ismbchar(
cs, pointer_cast<const char *>(
str),
683 pointer_cast<const char *>(
strend));
687 return cs->cset->mbcharlen(
cs, first_byte);
701 uint8_t second_byte) {
702 return cs->cset->mbcharlen(
cs,
703 ((first_byte & 0xFF) << 8) + (second_byte & 0xFF));
715 return cs->mbmaxlenlen;
733 return cs->cset->caseup_str(
cs,
str);
737 return cs->cset->casedn_str(
cs,
str);
741 int base,
const char **
end,
int *
err) {
746 size_t length,
int base,
const char **
end,
752 size_t length,
int base,
const char **
end,
758 size_t length,
int base,
const char **
end,
764 const char **
end,
int *
err) {
769 return (
cs->mbminlen == 1);
#define MYSQL_STRINGS_EXPORT
Definition: api.h:46
static Mysys_charset_loader * loader
Definition: charset.cc:184
User-specified callback interface for collation parser/initializer.
Definition: m_ctype.h:189
virtual ~MY_CHARSET_LOADER()
Definition: ctype.cc:1157
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:1285
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:1163
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:39
#define malloc(A)
Definition: lexyy.cc:914
#define free(A)
Definition: lexyy.cc:915
static constexpr int MY_CS_TOOSMALL4
Definition: m_ctype.h:96
static constexpr int MY_SEQ_SPACES
Definition: m_ctype.h:104
static constexpr uint32_t MY_CS_PUREASCII
Definition: m_ctype.h:139
static constexpr uint8_t MY_CHAR_CTR
Definition: m_ctype.h:548
static void MY_PUT_MB2(unsigned char *s, uint16_t code)
Definition: m_ctype.h:58
static constexpr int MY_CS_TOOSMALL
Definition: m_ctype.h:88
static constexpr uint8_t MY_CHAR_L
Definition: m_ctype.h:544
int myf
Definition: m_ctype.h:49
char my_tolower(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:565
static constexpr uint8_t MY_CHAR_NMR
Definition: m_ctype.h:545
int my_strcasecmp(const CHARSET_INFO *cs, const char *s1, const char *s2)
Definition: m_ctype.h:655
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:640
static constexpr uint32_t MY_REPERTOIRE_UNICODE30
Definition: m_ctype.h:155
static constexpr uint32_t MY_CS_READY
Definition: m_ctype.h:131
static constexpr uint32_t MY_CS_INLINE
Definition: m_ctype.h:147
static constexpr uint8_t MY_CHAR_PNT
Definition: m_ctype.h:547
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:508
static constexpr uint32_t MY_CS_NONASCII
Definition: m_ctype.h:141
int(* my_charset_conv_wc_mb)(const CHARSET_INFO *, my_wc_t, uint8_t *, uint8_t *)
Definition: m_ctype.h:335
static constexpr uint32_t MY_CS_STRNXFRM
Definition: m_ctype.h:123
bool my_isvar_start(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:616
constexpr int MY_CS_NAME_SIZE
Definition: m_ctype.h:45
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:119
bool my_isxdigit(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:586
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_latin1_bin
Definition: ctype-latin1.cc:670
static constexpr int MY_CS_ILUNI
Definition: m_ctype.h:86
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:159
bool my_isupper(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:574
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:751
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:660
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:911
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:757
bool my_isalnum(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:590
static constexpr uint32_t MY_CS_LOWER_SORT
Definition: m_ctype.h:145
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:648
size_t my_casedn_str(const CHARSET_INFO *cs, char *str)
Definition: m_ctype.h:736
static constexpr uint8_t MY_CHAR_SPC
Definition: m_ctype.h:546
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:998
bool my_ispunct(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:599
static constexpr uint32_t MY_CS_UNICODE_SUPPLEMENT
Definition: m_ctype.h:143
bool my_isvar(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:612
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:745
bool my_isdigit(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:582
static constexpr int MY_CS_TOOSMALL3
Definition: m_ctype.h:92
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:700
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:337
MYSQL_STRINGS_EXPORT unsigned my_string_repertoire(const CHARSET_INFO *cs, const char *str, size_t len)
Definition: ctype.cc:777
int(* my_charset_conv_mb_wc)(const CHARSET_INFO *, my_wc_t *, const uint8_t *, const uint8_t *)
Definition: m_ctype.h:333
static constexpr uint32_t MY_CS_AVAILABLE
Definition: m_ctype.h:133
bool my_isspace(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:595
double my_strntod(const CHARSET_INFO *cs, const char *str, size_t length, const char **end, int *err)
Definition: m_ctype.h:763
bool use_strnxfrm(const CHARSET_INFO *cs)
Definition: m_ctype.h:625
static constexpr uint32_t MY_REPERTOIRE_EXTENDED
Definition: m_ctype.h:153
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:56
static constexpr int MY_SEQ_INTTAIL
Definition: m_ctype.h:103
bool my_iscntrl(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:608
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_latin1
Definition: ctype-latin1.cc:365
unsigned my_mbcharlen(const CHARSET_INFO *cs, unsigned first_byte)
Definition: m_ctype.h:686
static constexpr uint32_t MY_CHARSET_UNDEFINED
Definition: m_ctype.h:109
static constexpr int MY_CS_TOOSMALL5
Definition: m_ctype.h:98
static constexpr uint32_t MY_CS_UNICODE
Definition: m_ctype.h:129
unsigned my_ismbchar(const CHARSET_INFO *cs, const char *str, const char *strend)
Definition: m_ctype.h:675
bool my_isascii(char ch)
Definition: m_ctype.h:559
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:137
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:63
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:970
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:727
static constexpr int MY_CS_ILSEQ
Definition: m_ctype.h:84
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf16le_general_ci
Definition: ctype-ucs2.cc:1598
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_gb18030_chinese_ci
Definition: ctype-gb18030.cc:20430
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:518
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:630
MYSQL_STRINGS_EXPORT int(* my_string_stack_guard)(int)
Definition: collations_internal.cc:42
static constexpr uint32_t MY_CS_CONFIG_UNUSED
Definition: m_ctype.h:113
long my_strntol(const CHARSET_INFO *cs, const char *str, size_t length, int base, const char **end, int *err)
Definition: m_ctype.h:740
static constexpr uint32_t MY_CS_LOADED
Definition: m_ctype.h:117
static constexpr uint32_t MY_CS_INDEX_UNUSED
Definition: m_ctype.h:115
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb3_bin
Definition: ctype-utf8.cc:5899
constexpr const char * CHARSET_DIR
Definition: m_ctype.h:47
bool use_mb(const CHARSET_INFO *cs)
Definition: m_ctype.h:671
MYSQL_STRINGS_EXPORT unsigned my_charset_repertoire(const CHARSET_INFO *cs)
Definition: ctype.cc:799
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:714
bool my_isalpha(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:569
size_t my_caseup_str(const CHARSET_INFO *cs, char *str)
Definition: m_ctype.h:732
static constexpr uint32_t MY_REPERTOIRE_ASCII
Definition: m_ctype.h:151
bool is_supported_parser_charset(const CHARSET_INFO *cs)
Definition: m_ctype.h:768
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:1496
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:514
static constexpr uint8_t MY_CHAR_X
Definition: m_ctype.h:550
static constexpr int MY_CS_TOOSMALL2
Definition: m_ctype.h:90
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:1039
bool my_islower(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:578
static constexpr uint32_t MY_CS_PRIMARY
Definition: m_ctype.h:121
bool my_binary_compare(const CHARSET_INFO *cs)
Definition: m_ctype.h:621
static constexpr uint32_t MY_CS_COMPILED
Definition: m_ctype.h:111
static constexpr uint8_t MY_CHAR_B
Definition: m_ctype.h:549
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:635
bool my_isgraph(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:603
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_filename
Definition: ctype-utf8.cc:7056
static constexpr uint32_t MY_CS_CSSORT
Definition: m_ctype.h:135
char my_toupper(const CHARSET_INFO *cs, char ch)
Definition: m_ctype.h:561
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:100
static constexpr uint8_t MY_CHAR_U
Definition: m_ctype.h:543
static const char * strend(const char *s)
Definition: m_string.h:68
Definition of the global "loglevel" enumeration.
loglevel
Definition: my_loglevel.h:40
static char * path
Definition: mysqldump.cc:148
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1085
Definition: commit_order_queue.h:33
static std::string escape(const std::string &str)
Escapes (only) apostrophes.
Definition: st_units_of_measure.cc:38
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:921
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:422
uint8_t casedn_multiply
Definition: m_ctype.h:444
uint8_t pad_char
Definition: m_ctype.h:450
const struct lex_state_maps_st * state_maps
Definition: m_ctype.h:440
const uint16_t * tab_to_uni
Definition: m_ctype.h:437
unsigned binary_number
Definition: m_ctype.h:425
const uint8_t * ctype
Definition: m_ctype.h:432
const char * csname
Definition: m_ctype.h:427
my_wc_t max_sort_char
Definition: m_ctype.h:449
const MY_UNICASE_INFO * caseinfo
Definition: m_ctype.h:439
bool escape_with_backslash_is_dangerous
Definition: m_ctype.h:451
unsigned number
Definition: m_ctype.h:423
const uint8_t * to_lower
Definition: m_ctype.h:433
uint8_t caseup_multiply
Definition: m_ctype.h:443
unsigned mbmaxlenlen
Definition: m_ctype.h:447
unsigned mbmaxlen
Definition: m_ctype.h:446
unsigned strxfrm_multiply
Definition: m_ctype.h:442
MY_COLLATION_HANDLER * coll
Definition: m_ctype.h:455
const uint8_t * sort_order
Definition: m_ctype.h:435
MY_CHARSET_HANDLER * cset
Definition: m_ctype.h:454
const char * m_coll_name
Definition: m_ctype.h:428
const uint8_t * ident_map
Definition: m_ctype.h:441
uint8_t levels_for_compare
Definition: m_ctype.h:452
unsigned mbminlen
Definition: m_ctype.h:445
const MY_UNI_IDX * tab_from_uni
Definition: m_ctype.h:438
struct Coll_param * coll_param
Definition: m_ctype.h:431
struct MY_UCA_INFO * uca
Definition: m_ctype.h:436
const uint8_t * to_upper
Definition: m_ctype.h:434
my_wc_t min_sort_char
Definition: m_ctype.h:448
unsigned primary_number
Definition: m_ctype.h:424
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:464
const char * tailoring
Definition: m_ctype.h:430
unsigned state
Definition: m_ctype.h:426
const char * comment
Definition: m_ctype.h:429
Definition: str_uca_type.h:73
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: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:373
double(* strntod)(const CHARSET_INFO *, const char *s, size_t l, const char **e, int *err)
Definition: m_ctype.h:411
long long(* strtoll10)(const CHARSET_INFO *cs, const char *nptr, const char **endptr, int *error)
Definition: m_ctype.h:413
int(* ctype)(const CHARSET_INFO *cs, int *ctype, const uint8_t *s, const uint8_t *e)
Definition: m_ctype.h:381
size_t(* well_formed_len)(const CHARSET_INFO *, const char *b, const char *e, size_t nchars, int *error)
Definition: m_ctype.h:356
size_t(* caseup_str)(const CHARSET_INFO *, char *)
Definition: m_ctype.h:385
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:415
unsigned(* ismbchar)(const CHARSET_INFO *, const char *, const char *)
Definition: m_ctype.h:344
unsigned long long(* strntoull)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:409
unsigned long(* strntoul)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:405
bool(* init)(CHARSET_INFO *, MY_CHARSET_LOADER *loader, MY_CHARSET_ERRMSG *)
Definition: m_ctype.h:342
long(* strntol)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:403
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:354
size_t(* longlong10_to_str)(const CHARSET_INFO *, char *to, size_t n, int radix, long long val)
Definition: m_ctype.h:397
size_t(* numchars)(const CHARSET_INFO *, const char *b, const char *e)
Definition: m_ctype.h:346
size_t(* numcells)(const CHARSET_INFO *, const char *b, const char *e)
Definition: m_ctype.h:374
void(* fill)(const CHARSET_INFO *, char *to, size_t len, int fill)
Definition: m_ctype.h:400
my_charset_conv_wc_mb wc_mb
Definition: m_ctype.h:378
size_t(* scan)(const CHARSET_INFO *, const char *b, const char *e, int sq)
Definition: m_ctype.h:418
long long(* strntoll)(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err)
Definition: m_ctype.h:407
my_charset_conv_mb_wc mb_wc
Definition: m_ctype.h:377
unsigned(* mbcharlen)(const CHARSET_INFO *, unsigned c)
Definition: m_ctype.h:345
my_charset_conv_case caseup
Definition: m_ctype.h:388
size_t(* casedn_str)(const CHARSET_INFO *, char *)
Definition: m_ctype.h:386
size_t(* long10_to_str)(const CHARSET_INFO *, char *to, size_t n, int radix, long int val)
Definition: m_ctype.h:395
my_charset_conv_case casedn
Definition: m_ctype.h:389
size_t(* snprintf)(const CHARSET_INFO *, char *to, size_t n, const char *fmt,...)
Definition: m_ctype.h:392
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
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:312
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
int(* strnncoll)(const CHARSET_INFO *, const uint8_t *, size_t, const uint8_t *, size_t, bool)
Definition: m_ctype.h:250
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:327
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:329
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:124
uint32_t tolower
Definition: m_ctype.h:65
uint32_t toupper
Definition: m_ctype.h:64
uint32_t sort
Definition: m_ctype.h:66
const MY_UNICASE_CHARACTER ** page
Definition: m_ctype.h:71
my_wc_t maxchar
Definition: m_ctype.h:70
uint8_t * ctype
Definition: m_ctype.h:78
uint8_t pctype
Definition: m_ctype.h:77
Definition: m_ctype.h:163
uint16_t to
Definition: m_ctype.h:165
uint16_t from
Definition: m_ctype.h:164
const uint8_t * tab
Definition: m_ctype.h:166
Definition: sql_chars.h:89
Definition: m_ctype.h:169
unsigned mb_len
Definition: m_ctype.h:172
unsigned beg
Definition: m_ctype.h:170
unsigned end
Definition: m_ctype.h:171
int n
Definition: xcom_base.cc:508