|
bool(* | init )(CHARSET_INFO *, MY_CHARSET_LOADER *loader, MY_CHARSET_ERRMSG *) |
|
unsigned(* | ismbchar )(const CHARSET_INFO *, const char *, const char *) |
|
unsigned(* | mbcharlen )(const CHARSET_INFO *, unsigned c) |
|
size_t(* | numchars )(const CHARSET_INFO *, const char *b, const char *e) |
|
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. More...
|
|
size_t(* | well_formed_len )(const CHARSET_INFO *, const char *b, const char *e, size_t nchars, int *error) |
|
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 characters are stripped. More...
|
|
size_t(* | numcells )(const CHARSET_INFO *, const char *b, const char *e) |
|
my_charset_conv_mb_wc | mb_wc |
|
my_charset_conv_wc_mb | wc_mb |
|
int(* | ctype )(const CHARSET_INFO *cs, int *ctype, const uint8_t *s, const uint8_t *e) |
|
size_t(* | caseup_str )(const CHARSET_INFO *, char *) |
|
size_t(* | casedn_str )(const CHARSET_INFO *, char *) |
|
my_charset_conv_case | caseup |
|
my_charset_conv_case | casedn |
|
size_t(* | snprintf )(const CHARSET_INFO *, char *to, size_t n, const char *fmt,...) |
|
size_t(* | long10_to_str )(const CHARSET_INFO *, char *to, size_t n, int radix, long int val) |
|
size_t(* | longlong10_to_str )(const CHARSET_INFO *, char *to, size_t n, int radix, long long val) |
|
void(* | fill )(const CHARSET_INFO *, char *to, size_t len, int fill) |
|
long(* | strntol )(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err) |
|
unsigned long(* | strntoul )(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err) |
|
long long(* | strntoll )(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err) |
|
unsigned long long(* | strntoull )(const CHARSET_INFO *, const char *s, size_t l, int base, const char **e, int *err) |
|
double(* | strntod )(const CHARSET_INFO *, const char *s, size_t l, const char **e, int *err) |
|
long long(* | strtoll10 )(const CHARSET_INFO *cs, const char *nptr, const char **endptr, int *error) |
|
unsigned long long(* | strntoull10rnd )(const CHARSET_INFO *cs, const char *str, size_t length, int unsigned_fl, const char **endptr, int *error) |
|
size_t(* | scan )(const CHARSET_INFO *, const char *b, const char *e, int sq) |
|
size_t(* MY_CHARSET_HANDLER::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 characters are stripped.
This holds even for NO PAD collations.
Exception: The "binary" collation, which is used behind-the-scenes to implement the BINARY type (by mapping it to CHAR(n) COLLATE "binary"), returns just the length back with no stripping. It's done that way so that Field_string (implementing CHAR(n)) returns the full padded width on read (as opposed to a normal CHAR, where we usually strip the spaces on read), but it's suboptimal, since lengthsp() is also used in a number of other places, e.g. stripping trailing spaces from enum values given in by the user. If you call this function, be aware of this special exception and consider the implications.