MySQL 8.4.3
Source Code Documentation
|
#include <stddef.h>
#include <sys/types.h>
#include <cstring>
#include <utility>
#include "lex_string.h"
#include "my_inttypes.h"
#include "mysql/mysql_lex_string.h"
#include "mysql/strings/m_ctype.h"
#include "template_utils.h"
Go to the source code of this file.
Functions | |
ulonglong | find_set (const TYPELIB *lib, const char *x, size_t length, const CHARSET_INFO *cs, const char **err_pos, uint *err_len, bool *set_warning) |
uint | find_type (const TYPELIB *lib, const char *find, size_t length, bool part_match) |
uint | find_type2 (const TYPELIB *lib, const char *find, size_t length, const CHARSET_INFO *cs) |
uint | check_word (TYPELIB *lib, const char *val, const char *end, const char **end_of_word) |
char * | flagset_to_string (THD *thd, LEX_STRING *result, ulonglong set, const char *lib[]) |
char * | set_to_string (THD *thd, LEX_STRING *result, ulonglong set, const char *lib[]) |
char * | set_to_string (THD *thd, LEX_STRING *result, ulonglong set, const char *lib[], bool quoted) |
size_t | strconvert (const CHARSET_INFO *from_cs, const char *from, CHARSET_INFO *to_cs, char *to, size_t to_length, uint *errors) |
template<class STDSTRINGLIKE_TYPE > | |
MYSQL_LEX_CSTRING | lex_cstring_handle (const STDSTRINGLIKE_TYPE &s) |
Return a LEX_CSTRING handle to a std::string like (meaning something which has the c_str() and length() member functions). More... | |
template<class STRLIKE_TYPE > | |
STRLIKE_TYPE | casedn (const CHARSET_INFO *ci, STRLIKE_TYPE &&s) |
Lowercase a string according to charset. More... | |
template<class STRLIKE_TYPE > | |
STRLIKE_TYPE | casedn (const CHARSET_INFO *ci, const STRLIKE_TYPE &src) |
Lowercase a string according to charset. More... | |
LEX_STRING * | make_lex_string_root (MEM_ROOT *mem_root, const char *str, size_t length) |
Create a LEX_STRING in a MEM_ROOT and copy the given string into it. More... | |
bool | lex_string_strmake (MEM_ROOT *mem_root, LEX_STRING *lex_str, const char *str, size_t length) |
Copy the given string into a LEX_STRING, allocating it in the given MEM_ROOT. More... | |
bool | lex_string_strmake (MEM_ROOT *mem_root, LEX_CSTRING *lex_str, const char *str, size_t length) |
Copy the given string into a LEX_CSTRING, allocating it in the given MEM_ROOT. More... | |
template<class LEX_STRING_TYPE > | |
LEX_STRING_TYPE | LexStringDupRoot (MEM_ROOT *mem_root, LEX_STRING_TYPE s) |
Utility function for copying a LEX_STRING_TYPE (either LEX_STRING or LEX_CSTRING) onto a mem_root. More... | |
template<class LEX_STRING_TYPE > | |
LEX_STRING_TYPE | LexStringDupRootUnlessEmpty (MEM_ROOT *mem_root, LEX_STRING_TYPE s) |
Utility function for copying a LEX_STRING_TYPE (either LEX_STRING or LEX_CSTRING) onto a mem_root, but which does not allocate space for empty strings. More... | |
template<class LEX_STRING_TYPE > | |
int | strnncmp_nopads (const CHARSET_INFO &cs, LEX_STRING_TYPE &&a, LEX_STRING_TYPE &&b) |
Utility function for collating (using strnncoll) two LEX_STRING_TYPEs. More... | |
STRLIKE_TYPE casedn | ( | const CHARSET_INFO * | ci, |
const STRLIKE_TYPE & | src | ||
) |
Lowercase a string according to charset.
Overload for const T& which copies argument and forwards to T&& overload.
ci | pointer to charset for conversion |
src | string to lower-case |
modified | copy of argument |
STRLIKE_TYPE casedn | ( | const CHARSET_INFO * | ci, |
STRLIKE_TYPE && | s | ||
) |
Lowercase a string according to charset.
ci | pointer to charset for conversion |
s | string to lower-case |
modified | argument if r-value |
copy | of modified argument if lvalue (meaningless, don't use) |
uint check_word | ( | TYPELIB * | lib, |
const char * | val, | ||
const char * | end, | ||
const char ** | end_of_word | ||
) |
ulonglong find_set | ( | const TYPELIB * | lib, |
const char * | x, | ||
size_t | length, | ||
const CHARSET_INFO * | cs, | ||
const char ** | err_pos, | ||
uint * | err_len, | ||
bool * | set_warning | ||
) |
uint find_type | ( | const TYPELIB * | lib, |
const char * | find, | ||
size_t | length, | ||
bool | part_match | ||
) |
uint find_type2 | ( | const TYPELIB * | lib, |
const char * | find, | ||
size_t | length, | ||
const CHARSET_INFO * | cs | ||
) |
char * flagset_to_string | ( | THD * | thd, |
LEX_STRING * | result, | ||
ulonglong | set, | ||
const char * | lib[] | ||
) |
MYSQL_LEX_CSTRING lex_cstring_handle | ( | const STDSTRINGLIKE_TYPE & | s | ) |
Return a LEX_CSTRING handle to a std::string like (meaning something which has the c_str() and length() member functions).
Note that the std::string-like object retains ownership of the character array, and consequently the returned LEX_CSTRING is only valid as long as the std::string-like object is valid.
s | std::string-like object |
bool lex_string_strmake | ( | MEM_ROOT * | mem_root, |
LEX_CSTRING * | lex_str, | ||
const char * | str, | ||
size_t | length | ||
) |
Copy the given string into a LEX_CSTRING, allocating it in the given MEM_ROOT.
mem_root | MEM_ROOT where to allocate the string. |
lex_str | LEX_CSTRING to fill with the copied string. |
str | string to be copied into the LEX_CSTRING. |
length | length of str, in bytes |
bool lex_string_strmake | ( | MEM_ROOT * | mem_root, |
LEX_STRING * | lex_str, | ||
const char * | str, | ||
size_t | length | ||
) |
Copy the given string into a LEX_STRING, allocating it in the given MEM_ROOT.
mem_root | MEM_ROOT where to allocate the string. |
lex_str | LEX_STRING to fill with the copied string. |
str | string to be copied into the LEX_STRING. |
length | length of str, in bytes |
|
inline |
Utility function for copying a LEX_STRING_TYPE (either LEX_STRING or LEX_CSTRING) onto a mem_root.
mem_root | Where to allocate |
s | Source string to copy. |
|
inline |
Utility function for copying a LEX_STRING_TYPE (either LEX_STRING or LEX_CSTRING) onto a mem_root, but which does not allocate space for empty strings.
If called on a zero-length string EMPTY_CSTR is returned (where str is "").
mem_root | Where to allocate |
s | Source string to copy. |
LEX_STRING * make_lex_string_root | ( | MEM_ROOT * | mem_root, |
const char * | str, | ||
size_t | length | ||
) |
Create a LEX_STRING in a MEM_ROOT and copy the given string into it.
mem_root | MEM_ROOT where to allocate the LEX_STRING. |
str | string to be copied into the LEX_STRING. |
length | length of str, in bytes |
char * set_to_string | ( | THD * | thd, |
LEX_STRING * | result, | ||
ulonglong | set, | ||
const char * | lib[] | ||
) |
char * set_to_string | ( | THD * | thd, |
LEX_STRING * | result, | ||
ulonglong | set, | ||
const char * | lib[], | ||
bool | quoted | ||
) |
size_t strconvert | ( | const CHARSET_INFO * | from_cs, |
const char * | from, | ||
CHARSET_INFO * | to_cs, | ||
char * | to, | ||
size_t | to_length, | ||
uint * | errors | ||
) |
|
inline |
Utility function for collating (using strnncoll) two LEX_STRING_TYPEs.
Saves the boiler plate and casting needed when calling the function directly.