25#ifndef ITEM_STRFUNC_INCLUDED
26#define ITEM_STRFUNC_INCLUDED
54#include <openssl/evp.h>
194 const char *
func_name()
const override {
return "sha2"; }
205 const char *
func_name()
const override {
return "to_base64"; }
213 const char *
func_name()
const override {
return "statement_digest"; }
216 pointer_cast<Check_function_as_value_generator_parameters *>(
235 const char *
func_name()
const override {
return "statement_digest_text"; }
245 pointer_cast<Check_function_as_value_generator_parameters *>(
263 const char *
func_name()
const override {
return "from_base64"; }
269 EVP_CIPHER_CTX *
ctx{
nullptr};
270#if OPENSSL_VERSION_NUMBER < 0x10100000L
304 const char *
func_name()
const override {
return "aes_encrypt"; }
309 EVP_CIPHER_CTX *
ctx{
nullptr};
310#if OPENSSL_VERSION_NUMBER < 0x10100000L
344 const char *
func_name()
const override {
return "aes_decrypt"; }
360 const char *
func_name()
const override {
return "random_bytes"; }
377 const char *
func_name()
const override {
return "concat"; }
393 const char *
func_name()
const override {
return "concat_ws"; }
410 const char *
func_name()
const override {
return "etag"; }
413 pointer_cast<Check_function_as_value_generator_parameters *>(
430 const char *
func_name()
const override {
return "reverse"; }
443 const char *
func_name()
const override {
return "replace"; }
457 const char *
func_name()
const override {
return "insert"; }
474 const char *
func_name()
const override {
return "lower"; }
481 const char *
func_name()
const override {
return "upper"; }
492 const char *
func_name()
const override {
return "left"; }
503 const char *
func_name()
const override {
return "right"; }
517 :
super(pos, a, b, c) {}
521 const char *
func_name()
const override {
return "substr"; }
532 const char *
func_name()
const override {
return "substring_index"; }
646 pointer_cast<Check_function_as_value_generator_parameters *>(
668 const char *
func_name()
const override {
return "database"; }
699 pointer_cast<Check_function_as_value_generator_parameters *>(
714 const char *
func_name()
const override {
return "user"; }
747 const char *
func_name()
const override {
return "current_user"; }
763 const char *
func_name()
const override {
return "soundex"; }
774 const char *
func_name()
const override {
return "elt"; }
789 const char *
func_name()
const override {
return "make_set"; }
808 const char *
func_name()
const override {
return "format"; }
832 const char *
func_name()
const override {
return "char"; }
848 const char *
func_name()
const override {
return "repeat"; }
856 const char *
func_name()
const override {
return "space"; }
867 const char *
func_name()
const override {
return "rpad"; }
878 const char *
func_name()
const override {
return "lpad"; }
892 const char *
func_name()
const override {
return "uuid_to_bin"; }
906 const char *
func_name()
const override {
return "bin_to_uuid"; }
915 const char *
func_name()
const override {
return "is_uuid"; }
930 const char *
func_name()
const override {
return "conv"; }
940 const char *
func_name()
const override {
return "hex"; }
953 const char *
func_name()
const override {
return "unhex"; }
984 const char *
func_name()
const override {
return "like_range_min"; }
991 const char *
func_name()
const override {
return "like_range_max"; }
1036 bool cache_if_const)
1077 const char *
func_name()
const override {
return "cast_as_char"; }
1092 const char *
func_name()
const override {
return "load_file"; }
1106 pointer_cast<Check_function_as_value_generator_parameters *>(
1124 const char *
func_name()
const override {
return "export_set"; }
1145 bool cache_if_const)
1149 const char *
func_name()
const override {
return "convert"; }
1168 bool eq(
const Item *item)
const override;
1169 const char *
func_name()
const override {
return "collate"; }
1192 const char *
func_name()
const override {
return "charset"; }
1206 const char *
func_name()
const override {
return "collation"; }
1227 uint num_codepoints_arg, uint flags_arg,
1228 bool as_binary_arg =
false)
1237 const char *
func_name()
const override {
return "weight_string"; }
1267 const char *
func_name()
const override {
return "uncompressed_length"; }
1283 const char *
func_name()
const override {
return "compress"; }
1293 const char *
func_name()
const override {
return "to_vector"; }
1308 const char *
func_name()
const override {
return "from_vector"; }
1324 const char *
func_name()
const override {
return "uncompress"; }
1344 pointer_cast<Check_function_as_value_generator_parameters *>(
1359 const char *
func_name()
const override {
return "current_role"; }
1399 const char *
func_name()
const override {
return "roles_graphml"; }
1439 const char *
func_name()
const override {
return "get_dd_column_privileges"; }
1460 const char *
func_name()
const override {
return "get_dd_create_options"; }
1481 const char *
func_name()
const override {
return "get_dd_schema_options"; }
1506 return "internal_get_comment_or_error";
1529 return "get_dd_tablespace_private_data";
1551 const char *
func_name()
const override {
return "get_dd_index_private_data"; }
1573 return "internal_get_partition_nodegroup";
1596 const char *
func_name()
const override {
return "internal_tablespace_type"; }
1619 return "internal_tablespace_logfile_group_name";
1643 return "internal_tablespace_status";
1666 return "internal_tablespace_row_format";
1689 const char *
func_name()
const override {
return "internal_tablespace_extra"; }
1705 const char *
func_name()
const override {
return "convert_cpu_id_mask"; }
1724 const char *
func_name()
const override {
return "get_dd_property_key_value"; }
1745 return "get_jdv_property_key_value";
1765 const char *
func_name()
const override {
return "remove_dd_property_key"; }
1787 return "convert_interval_to_user_interval";
1807 const char *
func_name()
const override {
return "internal_get_username"; }
1826 const char *
func_name()
const override {
return "internal_get_hostname"; }
1846 return "internal_get_enabled_role_json";
1867 return "internal_get_mandatory_roles_json";
1890 return "internal_get_dd_column_extra";
1896inline void tohex(
char *to, uint64_t from, uint len) {
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:247
void set(const DTCollation &dt)
Definition: item.h:203
void set_repertoire(uint repertoire_arg)
Definition: item.h:229
const CHARSET_INFO * collation
Definition: item.h:185
Definition: my_temporal.h:395
Definition: my_temporal.h:339
static const uint32 max_dimensions
Definition: field.h:3720
Definition: item_cmpfunc.h:304
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_cmpfunc.h:338
The following types of conversions are considered safe:
Definition: item_strfunc.h:1002
const CHARSET_INFO * m_cast_cs
The character set we are converting to.
Definition: item_strfunc.h:1007
bool m_safe
Definition: item_strfunc.h:1016
bool m_charset_conversion
If true, conversion is needed so do it, else allow string copy.
Definition: item_strfunc.h:1005
const CHARSET_INFO * m_from_cs
The character set we are converting from.
Definition: item_strfunc.h:1009
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3634
Item_charset_conversion(const POS &pos, Item *a, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1054
bool m_use_cached_value
Marks whether the underlying Item is constant and may be cached.
Definition: item_strfunc.h:1012
String * val_str(String *) override
Definition: item_strfunc.cc:3524
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:1029
longlong m_cast_length
Length argument value, if any given.
Definition: item_strfunc.h:1014
String m_tmp_value
Definition: item_strfunc.h:1010
Item_charset_conversion(THD *thd, Item *a, const CHARSET_INFO *cs_arg, bool cache_if_const)
Definition: item_strfunc.h:1035
uint32 compute_max_char_length()
Helper for CAST and CONVERT type resolution: common logic to compute the maximum numbers of character...
Definition: item_strfunc.cc:3603
Definition: item_strfunc.h:307
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:323
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:327
String * val_str(String *) override
Definition: item_strfunc.cc:634
void destroy_op_context()
Definition: item_strfunc.cc:618
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:624
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:319
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:315
Item_str_func super
Definition: item_strfunc.h:308
EVP_CIPHER_CTX * ctx
Definition: item_strfunc.h:309
const char * func_name() const override
Definition: item_strfunc.h:344
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:332
void create_op_context()
Definition: item_strfunc.cc:610
~Item_func_aes_decrypt() override
Definition: item_strfunc.h:337
EVP_CIPHER_CTX stack_ctx
Definition: item_strfunc.h:311
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:685
Definition: item_strfunc.h:266
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:292
void create_op_context()
Definition: item_strfunc.cc:517
String * val_str(String *) override
Definition: item_strfunc.cc:541
const char * func_name() const override
Definition: item_strfunc.h:304
EVP_CIPHER_CTX * ctx
Definition: item_strfunc.h:269
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:279
EVP_CIPHER_CTX stack_ctx
Definition: item_strfunc.h:271
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:275
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:531
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:600
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:283
~Item_func_aes_encrypt() override
Definition: item_strfunc.h:297
String tmp_value
Definition: item_strfunc.h:267
Item_str_func super
Definition: item_strfunc.h:268
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:287
void destroy_op_context()
Definition: item_strfunc.cc:525
Definition: item_strfunc.h:895
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2897
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:2907
Item_func_bin_to_uuid(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:902
Item_func_bin_to_uuid(const POS &pos, Item *arg1)
Definition: item_strfunc.h:900
const char * func_name() const override
Definition: item_strfunc.h:906
char m_text_buf[mysql::gtid::Uuid::TEXT_LENGTH+1]
Buffer to store the text result.
Definition: item_strfunc.h:897
Definition: item_strfunc.h:813
Item_func_char(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:815
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:833
Item_func_char(const POS &pos, PT_item_list *list, const CHARSET_INFO *cs)
Definition: item_strfunc.h:820
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:826
String * val_str(String *) override
Definition: item_strfunc.cc:2541
const char * func_name() const override
Definition: item_strfunc.h:832
Definition: item_strfunc.h:1186
Item_func_charset(const POS &pos, Item *a)
Definition: item_strfunc.h:1188
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1193
String * val_str(String *) override
Definition: item_strfunc.cc:3201
const char * func_name() const override
Definition: item_strfunc.h:1192
Definition: item_strfunc.h:1200
String * val_str(String *) override
Definition: item_strfunc.cc:3215
const char * func_name() const override
Definition: item_strfunc.h:1206
Item_func_collation(const POS &pos, Item *a)
Definition: item_strfunc.h:1202
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1207
Definition: item_strfunc.h:1277
String buffer
Definition: item_strfunc.h:1278
Item_func_compress(const POS &pos, Item *a)
Definition: item_strfunc.h:1281
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4107
String * val_str(String *str) override
Definition: item_strfunc.cc:4115
const char * func_name() const override
Definition: item_strfunc.h:1283
Definition: item_strfunc.h:380
const char * func_name() const override
Definition: item_strfunc.h:393
Item_func_concat_ws(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:387
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1158
String tmp_value
Definition: item_strfunc.h:381
String * val_str(String *) override
concat with separator.
Definition: item_strfunc.cc:1125
Item_func_concat_ws(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:383
Definition: item_strfunc.h:366
String * val_str(String *) override
Concatenate args with the following premises: If only one arg (which is ok), return value of arg;.
Definition: item_strfunc.cc:1075
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1100
Item_func_concat(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:372
Item_func_concat(Item *a, Item *b)
Definition: item_strfunc.h:371
Item_func_concat(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:369
const char * func_name() const override
Definition: item_strfunc.h:377
String tmp_value
Definition: item_strfunc.h:367
Definition: item_strfunc.h:1137
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3113
Item_func_conv_charset(const POS &pos, Item *a, const CHARSET_INFO *cs)
Definition: item_strfunc.h:1139
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3119
const char * func_name() const override
Definition: item_strfunc.h:1149
Item_func_conv_charset(THD *thd, Item *a, const CHARSET_INFO *cs, bool cache_if_const)
Definition: item_strfunc.h:1144
Definition: item_strfunc.h:924
String * val_str(String *) override
Definition: item_strfunc.cc:3042
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3034
static constexpr uint32_t CONV_MAX_LENGTH
Definition: item_strfunc.h:927
Item_func_conv(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:928
const char * func_name() const override
Definition: item_strfunc.h:930
Definition: item_strfunc.h:1694
const char * func_name() const override
Definition: item_strfunc.h:1705
Item_func_convert_cpu_id_mask(const POS &pos, Item *list)
Definition: item_strfunc.h:1696
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1699
String * val_str(String *) override
Definition: item_strfunc.cc:5176
Definition: item_strfunc.h:1770
const char * func_name() const override
Definition: item_strfunc.h:1786
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1776
enum Functype functype() const override
Definition: item_strfunc.h:1775
String * val_str(String *) override
Definition: item_strfunc.cc:5475
Item_func_convert_interval_to_user_interval(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1772
Definition: item_strfunc.h:1245
const char * func_name() const override
Definition: item_strfunc.h:1252
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1253
Item_func_crc32(const POS &pos, Item *a)
Definition: item_strfunc.h:1249
longlong val_int() override
Definition: item_strfunc.cc:4095
String value
Definition: item_strfunc.h:1246
Definition: item_strfunc.h:1352
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1366
void set_current_role(THD *thd)
Definition: item_strfunc.cc:5232
Item_func_current_role()
Definition: item_strfunc.h:1356
const char * func_name() const override
Definition: item_strfunc.h:1359
bool value_cache_set
a flag whether value_cache is set or not
Definition: item_strfunc.h:1373
Item_func_sysconst super
Definition: item_strfunc.h:1353
Item_func_current_role(const POS &pos)
Definition: item_strfunc.h:1357
String * val_str(String *) override
Definition: item_strfunc.cc:5227
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1362
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1381
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5219
Definition: item_strfunc.h:722
Item_func_user super
Definition: item_strfunc.h:723
bool resolve_type(THD *) override
Overridden to copy definer priv_user and priv_host.
Definition: item_strfunc.cc:2033
Item_func_current_user(const POS &pos)
Definition: item_strfunc.h:744
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:748
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2110
const char * func_name() const override
Definition: item_strfunc.h:747
LEX_CSTRING m_definer_priv_host
Definition: item_strfunc.h:735
type_conversion_status save_in_field_inner(Field *field, bool) override
We override Item::save_in_field_inner() for reasons explained in the comment of that function - we ne...
Definition: item_strfunc.cc:2027
LEX_CSTRING m_definer_priv_user
Copied from m_name_resolution_ctx in fix_fields if the definer Security_context is set in Name_resolu...
Definition: item_strfunc.h:734
String * val_str(String *) override
Definition: item_strfunc.cc:2058
Name_resolution_context * m_name_resolution_ctx
Used to pass a security context to the resolver functions.
Definition: item_strfunc.h:730
Definition: item_strfunc.h:654
Item_func_sysconst super
Definition: item_strfunc.h:655
String * val_str(String *) override
Definition: item_strfunc.cc:1997
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:663
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:669
Item_func_database(const POS &pos)
Definition: item_strfunc.h:658
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:1989
const char * func_name() const override
Definition: item_strfunc.h:668
Definition: item_strfunc.h:766
const char * func_name() const override
Definition: item_strfunc.h:774
longlong val_int() override
Definition: item_strfunc.cc:2440
String * val_str(String *str) override
Definition: item_strfunc.cc:2453
double val_real() override
Definition: item_strfunc.cc:2428
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2409
Item_func_elt(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:768
This class represents the function ETAG which is used to traverse the input arguments and compute a 1...
Definition: item_strfunc.h:400
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:411
String * val_str(String *) override
Definition: item_strfunc.cc:1180
Item_func_etag(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:404
Item_func_etag(Item *a, Item *b)
Definition: item_strfunc.h:406
const char * func_name() const override
Definition: item_strfunc.h:410
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1246
String m_tmp_value
Definition: item_strfunc.h:401
Definition: item_strfunc.h:1113
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1115
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:1119
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1117
String * val_str(String *str) override
Definition: item_strfunc.cc:3760
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3829
const char * func_name() const override
Definition: item_strfunc.h:1124
Definition: item_strfunc.h:256
String tmp_value
Definition: item_strfunc.h:257
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:783
const char * func_name() const override
Definition: item_strfunc.h:263
String * val_str(String *) override
Definition: item_strfunc.cc:797
Item_func_from_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:260
Definition: item_strfunc.h:1297
Item_func_from_vector(const POS &pos, Item *a)
Definition: item_strfunc.h:1305
const char * func_name() const override
Definition: item_strfunc.h:1308
String * val_str_ascii(String *str) override
Definition: item_strfunc.cc:4223
String buffer
Definition: item_strfunc.h:1301
static const uint32 per_value_chars
Definition: item_strfunc.h:1298
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4207
static const uint32 max_output_bytes
Definition: item_strfunc.h:1299
Item_func_from_vector(Item *a)
Definition: item_strfunc.h:1304
Definition: item_strfunc.h:1420
Item_func_get_dd_column_privileges(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1422
const char * func_name() const override
Definition: item_strfunc.h:1439
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1426
enum Functype functype() const override
Definition: item_strfunc.h:1425
String * val_str(String *) override
This function prepares string with list of column privileges.
Definition: item_strfunc.cc:4474
Definition: item_strfunc.h:1444
enum Functype functype() const override
Definition: item_strfunc.h:1449
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1450
String * val_str(String *) override
This function prepares string representing create_options for table.
Definition: item_strfunc.cc:4546
Item_func_get_dd_create_options(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1446
const char * func_name() const override
Definition: item_strfunc.h:1460
Definition: item_strfunc.h:1535
const char * func_name() const override
Definition: item_strfunc.h:1551
Item_func_get_dd_index_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1537
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1541
String * val_str(String *) override
This function prepares string representing se_private_data for index.
Definition: item_strfunc.cc:5091
enum Functype functype() const override
Definition: item_strfunc.h:1540
Definition: item_strfunc.h:1710
String * val_str(String *) override
This function prepares string representing value stored at key supplied.
Definition: item_strfunc.cc:5287
enum Functype functype() const override
Definition: item_strfunc.h:1715
Item_func_get_dd_property_key_value(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1712
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1716
const char * func_name() const override
Definition: item_strfunc.h:1724
Definition: item_strfunc.h:1465
String * val_str(String *) override
This function prepares string representing options for a schema.
Definition: item_strfunc.cc:4747
const char * func_name() const override
Definition: item_strfunc.h:1481
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1471
enum Functype functype() const override
Definition: item_strfunc.h:1470
Item_func_get_dd_schema_options(const POS &pos, Item *a)
Definition: item_strfunc.h:1467
Definition: item_strfunc.h:1512
String * val_str(String *) override
This function prepares string representing se_private_data for tablespace.
Definition: item_strfunc.cc:5025
const char * func_name() const override
Definition: item_strfunc.h:1528
enum Functype functype() const override
Definition: item_strfunc.h:1517
Item_func_get_dd_tablespace_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1514
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1518
Definition: item_strfunc.h:1729
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1736
enum Functype functype() const override
Definition: item_strfunc.h:1735
String * val_str(String *) override
This function prepares a string representing the value associated with the logical key that is suppli...
Definition: item_strfunc.cc:5342
const char * func_name() const override
Definition: item_strfunc.h:1744
Item_func_get_jdv_property_key_value(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1731
Definition: item_strfunc.h:1556
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1562
String * val_str(String *) override
Definition: item_strfunc.cc:4872
enum Functype functype() const override
Definition: item_strfunc.h:1561
Item_func_get_partition_nodegroup(const POS &pos, Item *a)
Definition: item_strfunc.h:1558
const char * func_name() const override
Definition: item_strfunc.h:1572
Definition: item_strfunc.h:935
String tmp_value
Definition: item_strfunc.h:936
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3381
Item_func_hex(const POS &pos, Item *a)
Definition: item_strfunc.h:939
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:3393
const char * func_name() const override
Definition: item_strfunc.h:940
Definition: item_strfunc.h:446
String * val_str(String *) override
Definition: item_strfunc.cc:1395
const char * func_name() const override
Definition: item_strfunc.h:457
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1447
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:449
Item_func_insert(const POS &pos, Item *org, Item *start, Item *length, Item *new_str)
Definition: item_strfunc.h:452
String tmp_value
Definition: item_strfunc.h:447
Definition: item_strfunc.h:1873
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1879
String * val_str(String *) override
This function prepares string representing EXTRA column for I_S.COLUMNS.
Definition: item_strfunc.cc:5652
const char * func_name() const override
Definition: item_strfunc.h:1889
Item_func_internal_get_dd_column_extra(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1875
enum Functype functype() const override
Definition: item_strfunc.h:1878
Definition: item_strfunc.h:1831
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1837
enum Functype functype() const override
Definition: item_strfunc.h:1836
Item_func_internal_get_enabled_role_json(const POS &pos)
Definition: item_strfunc.h:1833
String * val_str(String *) override
Definition: item_strfunc.cc:5571
const char * func_name() const override
Definition: item_strfunc.h:1845
Definition: item_strfunc.h:1812
Item_func_internal_get_hostname(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1814
enum Functype functype() const override
Definition: item_strfunc.h:1817
const char * func_name() const override
Definition: item_strfunc.h:1826
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1818
String * val_str(String *) override
Definition: item_strfunc.cc:5536
Definition: item_strfunc.h:1852
const char * func_name() const override
Definition: item_strfunc.h:1866
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1858
enum Functype functype() const override
Definition: item_strfunc.h:1857
Item_func_internal_get_mandatory_roles_json(const POS &pos)
Definition: item_strfunc.h:1854
String * val_str(String *) override
Definition: item_strfunc.cc:5603
Definition: item_strfunc.h:1793
String * val_str(String *) override
Definition: item_strfunc.cc:5499
Item_func_internal_get_username(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1795
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1799
enum Functype functype() const override
Definition: item_strfunc.h:1798
const char * func_name() const override
Definition: item_strfunc.h:1807
Definition: item_strfunc.h:1601
const char * func_name() const override
Definition: item_strfunc.h:1618
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1608
String * val_str(String *) override
Definition: item_strfunc.cc:4929
Item_func_internal_tablespace_logfile_group_name(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1603
enum Functype functype() const override
Definition: item_strfunc.h:1607
Definition: item_strfunc.h:1625
Item_func_internal_tablespace_status(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1627
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1632
String * val_str(String *) override
Definition: item_strfunc.cc:4952
enum Functype functype() const override
Definition: item_strfunc.h:1631
const char * func_name() const override
Definition: item_strfunc.h:1642
Definition: item_strfunc.h:1579
enum Functype functype() const override
Definition: item_strfunc.h:1585
String * val_str(String *) override
Definition: item_strfunc.cc:4912
const char * func_name() const override
Definition: item_strfunc.h:1596
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1586
Item_func_internal_tablespace_type(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1581
Definition: item_strfunc.h:909
const char * func_name() const override
Definition: item_strfunc.h:915
longlong val_int() override
Definition: item_strfunc.cc:2947
Item_func_is_uuid(const POS &pos, Item *a)
Definition: item_strfunc.h:913
Item_bool_func super
Definition: item_strfunc.h:910
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:916
Definition: item_strfunc.h:485
Item_func_left(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:489
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1567
String tmp_value
Definition: item_strfunc.h:486
String * val_str(String *) override
Definition: item_strfunc.cc:1520
const char * func_name() const override
Definition: item_strfunc.h:492
Definition: item_strfunc.h:987
const char * func_name() const override
Definition: item_strfunc.h:991
Item_func_like_range_max(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:989
Definition: item_strfunc.h:980
const char * func_name() const override
Definition: item_strfunc.h:984
Item_func_like_range_min(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:982
Definition: item_strfunc.h:959
String max_str
Definition: item_strfunc.h:962
const bool is_min
Definition: item_strfunc.h:963
Item_func_like_range(const POS &pos, Item *a, Item *b, bool is_min_arg)
Definition: item_strfunc.h:966
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:971
String min_str
Definition: item_strfunc.h:961
String * val_str(String *) override
Definition: item_strfunc.cc:3468
Definition: item_strfunc.h:471
const char * func_name() const override
Definition: item_strfunc.h:474
Item_func_lower(const POS &pos, Item *item)
Definition: item_strfunc.h:473
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1496
Definition: item_strfunc.h:870
String * val_str(String *) override
Definition: item_strfunc.cc:2961
Item_func_lpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:874
String tmp_value
Definition: item_strfunc.h:871
String lpad_str
Definition: item_strfunc.h:871
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2828
const char * func_name() const override
Definition: item_strfunc.h:878
Definition: item_strfunc.h:616
Item_func_ltrim(const POS &pos, Item *a)
Definition: item_strfunc.h:618
Definition: item_strfunc.h:777
String * val_str(String *str) override
Definition: item_strfunc.cc:2493
Item_str_func super
Definition: item_strfunc.h:778
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2530
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2477
String tmp_str
Definition: item_strfunc.h:780
Item_func_make_set(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:783
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:2473
const char * func_name() const override
Definition: item_strfunc.h:789
Definition: item_strfunc.h:1127
String * val_str(String *) override
QUOTE() function returns argument string in single quotes suitable for using in a SQL statement.
Definition: item_strfunc.cc:3890
Item_func_quote(const POS &pos, Item *a)
Definition: item_strfunc.h:1131
String tmp_value
Definition: item_strfunc.h:1128
const char * func_name() const override
Definition: item_strfunc.h:1132
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3849
Definition: item_strfunc.h:347
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_strfunc.h:361
static const ulonglong MAX_RANDOM_BYTES_BUFFER
limitation from the SSL library
Definition: item_strfunc.h:351
Item_str_func super
Definition: item_strfunc.h:348
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:693
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:710
Item_func_random_bytes(const POS &pos, Item *a)
Definition: item_strfunc.h:354
String * val_str(String *a) override
Definition: item_strfunc.cc:717
const char * func_name() const override
Definition: item_strfunc.h:360
Definition: item_strfunc.h:1751
Item_func_remove_dd_property_key(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1753
const char * func_name() const override
Definition: item_strfunc.h:1765
String * val_str(String *) override
This function removes a key value from given property string.
Definition: item_strfunc.cc:5429
enum Functype functype() const override
Definition: item_strfunc.h:1756
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1757
Definition: item_strfunc.h:840
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2591
String * val_str(String *) override
Item_func_repeat::str is carefully written to avoid reallocs as much as possible at the cost of a loc...
Definition: item_strfunc.cc:2625
String tmp_value
Definition: item_strfunc.h:841
Item_func_repeat(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:844
const char * func_name() const override
Definition: item_strfunc.h:848
Definition: item_strfunc.h:433
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1373
String * val_str(String *) override
Replace all occurrences of string2 in string1 with string3.
Definition: item_strfunc.cc:1311
const char * func_name() const override
Definition: item_strfunc.h:443
String tmp_value
Definition: item_strfunc.h:434
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:436
String tmp_value2
Definition: item_strfunc.h:434
Item_func_replace(const POS &pos, Item *org, Item *find, Item *replace)
Definition: item_strfunc.h:439
Definition: item_strfunc.h:421
Item_func_reverse(Item *a)
Definition: item_strfunc.h:425
String * val_str(String *) override
Definition: item_strfunc.cc:1256
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1298
String tmp_value
Definition: item_strfunc.h:422
Item_func_reverse(const POS &pos, Item *a)
Definition: item_strfunc.h:426
const char * func_name() const override
Definition: item_strfunc.h:430
Definition: item_strfunc.h:495
Item_func_right(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:499
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1599
const char * func_name() const override
Definition: item_strfunc.h:503
String * val_str(String *) override
Definition: item_strfunc.cc:1577
String tmp_value
Definition: item_strfunc.h:496
Definition: item_strfunc.h:1384
Item_func_roles_graphml(const POS &pos)
Definition: item_strfunc.h:1389
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5270
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1414
Item_func_sysconst super
Definition: item_strfunc.h:1385
const char * func_name() const override
Definition: item_strfunc.h:1399
Item_func_roles_graphml()
Definition: item_strfunc.h:1388
bool calculate_graphml(THD *thd)
Constructs and caches the graphml string.
Definition: item_strfunc.cc:5250
String * val_str(String *) override
Definition: item_strfunc.cc:5265
bool value_cache_set
Set to true if value_cache is set.
Definition: item_strfunc.h:1417
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1394
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1401
Definition: item_strfunc.h:859
String tmp_value
Definition: item_strfunc.h:860
Item_func_rpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:863
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2729
String * val_str(String *) override
Definition: item_strfunc.cc:2756
const char * func_name() const override
Definition: item_strfunc.h:867
String rpad_str
Definition: item_strfunc.h:860
Definition: item_strfunc.h:622
Item_func_rtrim(const POS &pos, Item *a)
Definition: item_strfunc.h:624
Definition: item_strfunc.h:1155
bool eq(const Item *item) const override
Compare this item with another item for equality.
Definition: item_strfunc.cc:3177
Item_field * field_for_view_update() override
Definition: item_strfunc.h:1173
LEX_CSTRING collation_string
Definition: item_strfunc.h:1158
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3190
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:1179
const char * func_name() const override
Definition: item_strfunc.h:1169
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3147
enum Functype functype() const override
Definition: item_strfunc.h:1170
String * val_str(String *) override
Definition: item_strfunc.cc:3138
Item_func_set_collation(const POS &pos, Item *a, const LEX_CSTRING &collation_string_arg)
Definition: item_strfunc.h:1161
Item_str_func super
Definition: item_strfunc.h:1156
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3128
Definition: item_strfunc.h:188
const char * func_name() const override
Definition: item_strfunc.h:194
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:216
Item_func_sha2(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:190
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:299
Definition: item_strfunc.h:755
Item_func_soundex(const POS &pos, Item *a)
Definition: item_strfunc.h:760
String tmp_value
Definition: item_strfunc.h:756
Item_func_soundex(Item *a)
Definition: item_strfunc.h:759
String * val_str(String *) override
Definition: item_strfunc.cc:2163
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2118
const char * func_name() const override
Definition: item_strfunc.h:763
Definition: item_strfunc.h:851
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2669
String * val_str(String *) override
Definition: item_strfunc.cc:2701
const char * func_name() const override
Definition: item_strfunc.h:856
Item_func_space(const POS &pos, Item *arg1)
Definition: item_strfunc.h:853
Definition: item_strfunc.h:230
bool resolve_type(THD *thd) override
The type is always LONGTEXT, just like the digest_text columns in Performance Schema.
Definition: item_strfunc.cc:1035
const char * func_name() const override
Definition: item_strfunc.h:235
uchar * m_token_buffer
Definition: item_strfunc.h:253
Item_func_statement_digest_text(const POS &pos, Item *query_string)
Definition: item_strfunc.h:232
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:243
String * val_str(String *) override
Definition: item_strfunc.cc:1044
Definition: item_strfunc.h:208
uchar * m_token_buffer
Definition: item_strfunc.h:227
Item_func_statement_digest(const POS &pos, Item *query_string)
Definition: item_strfunc.h:210
const char * func_name() const override
Definition: item_strfunc.h:213
String * val_str_ascii(String *) override
Implementation of the STATEMENT_DIGEST() native function.
Definition: item_strfunc.cc:1005
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:989
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:214
Definition: item_strfunc.h:524
String * val_str(String *) override
Definition: item_strfunc.cc:1709
Item_func_substr_index(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:528
String tmp_value
Definition: item_strfunc.h:525
const char * func_name() const override
Definition: item_strfunc.h:532
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1698
Definition: item_strfunc.h:506
const char * func_name() const override
Definition: item_strfunc.h:521
Item_func_substr(Item *a, Item *b)
Definition: item_strfunc.h:512
Item_func_substr(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:515
String tmp_value
Definition: item_strfunc.h:509
Item_func_substr(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:513
Item_str_func super
Definition: item_strfunc.h:507
String * val_str(String *) override
Definition: item_strfunc.cc:1610
Item_func_substr(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:516
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1657
Definition: item_strfunc.h:628
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:644
virtual const Name_string fully_qualified_func_name() const =0
Item_func_sysconst(const POS &pos)
Definition: item_strfunc.h:635
Item_str_func super
Definition: item_strfunc.h:629
Item_func_sysconst()
Definition: item_strfunc.h:632
Definition: item_strfunc.h:197
const char * func_name() const override
Definition: item_strfunc.h:205
Item_func_to_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:201
Item_func_to_base64(Item *a)
Definition: item_strfunc.h:202
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:748
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:765
String tmp_value
Definition: item_strfunc.h:198
Definition: item_strfunc.h:1287
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4164
String * val_str(String *str) override
Definition: item_strfunc.cc:4179
String buffer
Definition: item_strfunc.h:1288
const char * func_name() const override
Definition: item_strfunc.h:1293
Item_func_to_vector(const POS &pos, Item *a)
Definition: item_strfunc.h:1291
Definition: item_strfunc.h:535
const bool m_trim_trailing
Definition: item_strfunc.h:556
bool trim_trailing() const
Definition: item_strfunc.h:588
bool trim_leading() const
Definition: item_strfunc.h:583
const char * func_name() const override
Definition: item_strfunc.h:595
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1919
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:1959
TRIM_MODE
Why all the trim modes in this enum? We need to maintain parsing information, so that our print() fun...
Definition: item_strfunc.h:542
@ TRIM_BOTH_DEFAULT
Definition: item_strfunc.h:543
@ TRIM_LTRIM
Definition: item_strfunc.h:547
@ TRIM_RTRIM
Definition: item_strfunc.h:548
@ TRIM_BOTH
Definition: item_strfunc.h:544
@ TRIM_LEADING
Definition: item_strfunc.h:545
@ TRIM_TRAILING
Definition: item_strfunc.h:546
Item_func_trim(Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:571
Item_func_trim(Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:559
Item_func_trim(const POS &pos, Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:577
String tmp_value
Definition: item_strfunc.h:552
const TRIM_MODE m_trim_mode
Definition: item_strfunc.h:554
Item_func_trim(const POS &pos, Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:565
String remove
Definition: item_strfunc.h:553
const bool m_trim_leading
Definition: item_strfunc.h:555
String * val_str(String *) override
Definition: item_strfunc.cc:1824
Definition: item_strfunc.h:1312
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1317
const char * func_name() const override
Definition: item_strfunc.h:1324
String * val_str(String *str) override
Definition: item_strfunc.cc:4255
String buffer
Definition: item_strfunc.h:1313
Item_func_uncompress(const POS &pos, Item *a)
Definition: item_strfunc.h:1316
Definition: item_strfunc.h:1261
const char * func_name() const override
Definition: item_strfunc.h:1267
Item_func_uncompressed_length(const POS &pos, Item *a)
Definition: item_strfunc.h:1265
String value
Definition: item_strfunc.h:1262
longlong val_int() override
Definition: item_strfunc.cc:4066
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1268
Definition: item_strfunc.h:945
Item_func_unhex(const POS &pos, Item *a)
Definition: item_strfunc.h:949
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3423
String * val_str(String *) override
Convert given hex string to a binary string.
Definition: item_strfunc.cc:3436
String tmp_value
Definition: item_strfunc.h:946
const char * func_name() const override
Definition: item_strfunc.h:953
Definition: item_strfunc.h:478
Item_func_upper(const POS &pos, Item *item)
Definition: item_strfunc.h:480
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1508
const char * func_name() const override
Definition: item_strfunc.h:481
Definition: item_strfunc.h:674
Item_func_user(const POS &pos)
Definition: item_strfunc.h:687
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_strfunc.h:691
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:715
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2100
String * val_str(String *) override
Definition: item_strfunc.cc:2018
Item_func_sysconst super
Definition: item_strfunc.h:675
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.h:709
Item_func_user()
Definition: item_strfunc.h:686
const char * func_name() const override
Definition: item_strfunc.h:714
bool evaluate(const char *user, const char *host)
Evaluate user name, must be called once per execution.
Definition: item_strfunc.cc:2077
type_conversion_status save_in_field_inner(Field *field, bool) override
We override Item::save_in_field_inner() for reasons explained in the comment of that function - we ne...
Definition: item_strfunc.cc:2013
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:705
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:697
bool m_evaluated
True when function value is evaluated, set to false after each execution.
Definition: item_strfunc.h:679
Definition: item_strfunc.h:881
String * val_str(String *) override
Definition: item_strfunc.cc:2865
Item_func_uuid_to_bin(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:888
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2856
uchar m_bin_buf[mysql::gtid::Uuid::BYTE_LENGTH]
Buffer to store the binary result.
Definition: item_strfunc.h:883
Item_func_uuid_to_bin(const POS &pos, Item *arg1)
Definition: item_strfunc.h:886
const char * func_name() const override
Definition: item_strfunc.h:892
Definition: item_strfunc.h:1328
Item_func_uuid(const POS &pos)
Definition: item_strfunc.h:1333
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:1342
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_strfunc.h:1336
String * val_str(String *) override
Definition: item_strfunc.cc:4455
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:4340
const char * func_name() const override
Definition: item_strfunc.h:1340
Item_func_uuid()
Definition: item_strfunc.h:1332
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4333
Item_str_func super
Definition: item_strfunc.h:1329
Definition: item_strfunc.h:1215
String * val_str(String *) override
Definition: item_strfunc.cc:3293
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3249
const char * func_name() const override
Definition: item_strfunc.h:1237
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3237
const uint num_codepoints
Definition: item_strfunc.h:1225
String tmp_value
Definition: item_strfunc.h:1218
Item_str_func super
Definition: item_strfunc.h:1216
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3226
Item_field * m_field_ref
Definition: item_strfunc.h:1221
const uint result_length
Definition: item_strfunc.h:1220
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3284
Item_func_weight_string(const POS &pos, Item *a, uint result_length_arg, uint num_codepoints_arg, uint flags_arg, bool as_binary_arg=false)
Definition: item_strfunc.h:1226
const bool as_binary
Definition: item_strfunc.h:1222
uint flags
Definition: item_strfunc.h:1219
Definition: item_func.h:101
Item ** args
Array of pointers to arguments.
Definition: item_func.h:108
bool reject_vector_args()
Definition: item_func.cc:1632
Functype
Definition: item_func.h:214
@ COLLATE_FUNC
Definition: item_func.h:261
@ DD_INTERNAL_FUNC
Definition: item_func.h:271
@ TYPECAST_FUNC
Definition: item_func.h:263
virtual const char * func_name() const =0
bool param_type_is_default(THD *thd, uint start, uint end, uint step, enum_field_types def)
For arguments of this Item_func ("args" array), in range [start, start+step, start+2*step,...
Definition: item_func.cc:530
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:131
bool null_on_null
Affects how to determine that NULL argument implies a NULL function return.
Definition: item_func.h:187
Definition: item_func.h:1046
Definition: item_strfunc.h:1082
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3687
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1096
String tmp_value
Definition: item_strfunc.h:1085
Item_str_func super
Definition: item_strfunc.h:1083
String * val_str(String *) override
Definition: item_strfunc.cc:3695
bool check_function_as_value_generator(uchar *checker_args) override
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:1104
Item_load_file(const POS &pos, Item *a)
Definition: item_strfunc.h:1088
const char * func_name() const override
Definition: item_strfunc.h:1092
table_map get_initial_pseudo_tables() const override
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_strfunc.h:1093
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item.cc:11279
Definition: item_strfunc.h:151
Item_str_ascii_func(Item *a, Item *b)
Definition: item_strfunc.h:166
Item_str_ascii_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:177
String * val_str_ascii(String *) override=0
Item_str_ascii_func()
Definition: item_strfunc.h:155
Item_str_ascii_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:174
String ascii_buf
Definition: item_strfunc.h:152
Item_str_ascii_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:169
Item_str_ascii_func(const POS &pos, Item *a)
Definition: item_strfunc.h:162
Item_str_ascii_func(Item *a)
Definition: item_strfunc.h:159
String * val_str(String *str) override
Definition: item_strfunc.h:182
Definition: item_strfunc.h:460
String * val_str(String *) override
Definition: item_strfunc.cc:1464
Item_str_conv(const POS &pos, Item *item)
Definition: item_strfunc.h:467
String tmp_value
Definition: item_strfunc.h:464
uint multiply
Definition: item_strfunc.h:462
my_charset_conv_case converter
Definition: item_strfunc.h:463
Definition: item_strfunc.h:78
Item_str_func()
Definition: item_strfunc.h:82
String * val_str_from_val_str_ascii(String *str, String *str2)
Definition: item_strfunc.cc:152
Item_str_func(Item *a, Item *b)
Definition: item_strfunc.h:90
my_decimal * val_decimal(my_decimal *) override
Definition: item_strfunc.cc:184
String * push_packet_overflow_warning(THD *thd, const char *func)
Calls push_warning_printf for packet overflow.
Definition: item_strfunc.cc:1557
Item_str_func(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:114
Item_str_func(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:112
Item_str_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:96
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_strfunc.h:123
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:143
Item_func super
Definition: item_strfunc.h:79
Item_str_func(Item *a)
Definition: item_strfunc.h:86
Item_str_func(Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:99
void left_right_max_length(THD *thd)
Definition: item_strfunc.cc:1540
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_strfunc.h:120
enum Item_result result_type() const override
Definition: item_strfunc.h:127
Item_str_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:94
longlong val_int() override
Definition: item_strfunc.h:117
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:109
Item_str_func(const POS &pos, Item *a)
Definition: item_strfunc.h:88
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:130
double val_real() override
Definition: item_strfunc.h:118
Item_str_func(const POS &pos)
Definition: item_strfunc.h:84
Item_str_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:92
Item_str_func(Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:104
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:174
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:107
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:101
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_strfunc.h:124
Definition: item_strfunc.h:1060
const char * func_name() const override
Definition: item_strfunc.h:1077
Item_typecast_char(THD *thd, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1065
Item_typecast_char(const POS &pos, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1070
enum Functype functype() const override
Definition: item_strfunc.h:1075
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3505
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.cc:3518
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3498
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:928
String str_value
str_values's main purpose is to cache the value in save_in_field
Definition: item.h:3637
void set_nullable(bool nullable)
Definition: item.h:3749
void set_data_type_blob(enum_field_types type, uint32 max_l)
Set the Item to be of BLOB type.
Definition: item.h:1682
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:3644
virtual Item_field * field_for_view_update()
Definition: item.h:3245
bool fixed
True if item has been resolved.
Definition: item.h:3737
bool null_value
True if item is null.
Definition: item.h:3774
bool get_datetime_from_string(Datetime_val *dt, my_time_flags_t flags)
Convert val_str() to datetime.
Definition: item.cc:1555
bool unsigned_flag
Definition: item.h:3775
bool get_date_from_string(Date_val *date, my_time_flags_t flags)
Convert val_str() to date.
Definition: item.cc:1563
longlong val_int_from_string()
Definition: item.cc:516
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1599
bool may_evaluate_const(const THD *thd) const
Return true if this is a const item that may be evaluated in the current phase of statement processin...
Definition: item.cc:1404
virtual String * val_str(String *str)=0
uint32 max_length
Maximum length of result of evaluating this item, in number of bytes.
Definition: item.h:3662
double val_real_from_string()
Definition: item.cc:468
bool get_time_from_string(Time_val *time)
Convert val_str() to time.
Definition: item.cc:1701
Represents a JSON container value of type "object" (ECMA), type J_OBJECT here.
Definition: json_dom.h:373
bool add_alias(std::string_view key, Json_dom *value)
Insert the value into the object.
Definition: json_dom.h:415
Definition: sql_list.h:494
Definition: sql_locale.h:37
Storage for name strings.
Definition: item.h:296
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:109
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:231
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:169
void mem_free()
Definition: sql_string.h:402
void mark_as_const()
Definition: sql_string.h:249
bool copy()
Definition: sql_string.cc:198
void set(String &str, size_t offset, size_t arg_length)
Definition: sql_string.h:304
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Time_val is a temporal type that represents only time.
Definition: my_temporal.h:55
A (partial) implementation of std::deque allocating its blocks on a MEM_ROOT.
Definition: mem_root_deque.h:111
my_decimal class limits 'decimal_t' type to what we need in MySQL.
Definition: my_decimal.h:97
constexpr std::array< const char, 37 > dig_vec_lower
Definition: dig_vec.h:36
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:31
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:64
@ MYSQL_TYPE_LONG_BLOB
Definition: field_types.h:86
static const std::string dec("DECRYPTION")
static int flags[50]
Definition: hp_test1.cc:40
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:180
#define NAME_STRING(x)
Definition: item.h:356
CHARSET_INFO * mysqld_collation_get_by_name(const char *name, CHARSET_INFO *name_cs=system_charset_info)
Get collation by name, send error to client on failure.
Definition: item_strfunc.cc:5160
String * mysql_generate_uuid(String *str)
Generate Universal Unique Identifier (UUID).
Definition: item_strfunc.cc:4348
void tohex(char *to, uint64_t from, uint len)
Definition: item_strfunc.h:1896
A better implementation of the UNIX ctype(3) library.
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:499
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:336
static constexpr uint32_t MY_CS_UNICODE
Definition: m_ctype.h:130
static constexpr uint32_t MY_REPERTOIRE_ASCII
Definition: m_ctype.h:152
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1577
Common definition used by mysys, performance schema and server & client.
static constexpr int HOSTNAME_LENGTH
Definition: my_hostname.h:43
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
unsigned char uchar
Definition: my_inttypes.h:52
long long int longlong
Definition: my_inttypes.h:55
uint32_t uint32
Definition: my_inttypes.h:67
uint64_t table_map
Definition: my_table_map.h:30
Interface for low level time utilities.
unsigned int my_time_flags_t
Flags to str_to_datetime and number_to_datetime.
Definition: my_time.h:85
Common definition between mysql server & client.
#define MAX_BLOB_WIDTH
Default width for blob in bytes.
Definition: mysql_com.h:907
#define USERNAME_LENGTH
Definition: mysql_com.h:69
#define NAME_CHAR_LEN
Field/table name length.
Definition: mysql_com.h:60
#define USERNAME_CHAR_LENGTH
Definition: mysql_com.h:64
char * user
Definition: mysqladmin.cc:67
const char * host
Definition: mysqladmin.cc:66
static bool replace
Definition: mysqlimport.cc:70
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1077
Definition: commit_order_queue.h:34
PT & ref(PT *tp)
Definition: tablespace_impl.cc:359
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
Container::const_iterator find(const Container &c, Value &&value)
Definition: generic.h:39
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2884
type_conversion_status
Status when storing a value in a field or converting from one datatype to another.
Definition: field.h:197
@ VGS_CHECK_CONSTRAINT
Definition: field.h:471
@ VGS_GENERATED_COLUMN
Definition: field.h:469
@ DERIVATION_COERCIBLE
Definition: field.h:177
@ DERIVATION_SYSCONST
Definition: field.h:178
File containing constants that can be used throughout the server.
constexpr const table_map RAND_TABLE_BIT
Definition: sql_const.h:113
constexpr const table_map INNER_TABLE_BIT
Definition: sql_const.h:111
Our own string classes, used pervasively throughout the executor.
case opt name
Definition: sslopt-case.h:29
Definition: m_ctype.h:421
const char * csname
Definition: m_ctype.h:426
unsigned state
Definition: m_ctype.h:425
Struct used to pass around arguments to/from check_function_as_value_generator.
Definition: item.h:486
const char * banned_function_name
the name of the function which is not allowed
Definition: item.h:500
Value_generator_source source
Definition: item.h:498
Definition: mysql_lex_string.h:40
const char * str
Definition: mysql_lex_string.h:41
size_t length
Definition: mysql_lex_string.h:42
Bison "location" class.
Definition: parse_location.h:43
Instances of Name_resolution_context store the information necessary for name resolution of Items and...
Definition: item.h:413
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:422
static const size_t TEXT_LENGTH
The number of bytes in the textual representation of a Uuid.
Definition: uuid.h:168
static constexpr std::size_t BYTE_LENGTH
The number of bytes in the data of a Uuid.
Definition: uuid.h:143
Item_result
Type of the user defined function return slot and arguments.
Definition: udf_registration_types.h:39
@ STRING_RESULT
not valid for UDFs
Definition: udf_registration_types.h:41