25#ifndef ITEM_STRFUNC_INCLUDED
26#define ITEM_STRFUNC_INCLUDED
188 const char *
func_name()
const override {
return "md5"; }
196 const char *
func_name()
const override {
return "sha"; }
205 const char *
func_name()
const override {
return "sha2"; }
215 const char *
func_name()
const override {
return "to_base64"; }
223 const char *
func_name()
const override {
return "statement_digest"; }
226 pointer_cast<Check_function_as_value_generator_parameters *>(
245 const char *
func_name()
const override {
return "statement_digest_text"; }
255 pointer_cast<Check_function_as_value_generator_parameters *>(
273 const char *
func_name()
const override {
return "from_base64"; }
296 const char *
func_name()
const override {
return "aes_encrypt"; }
318 const char *
func_name()
const override {
return "aes_decrypt"; }
334 const char *
func_name()
const override {
return "random_bytes"; }
351 const char *
func_name()
const override {
return "concat"; }
367 const char *
func_name()
const override {
return "concat_ws"; }
379 const char *
func_name()
const override {
return "reverse"; }
392 const char *
func_name()
const override {
return "replace"; }
406 const char *
func_name()
const override {
return "insert"; }
423 const char *
func_name()
const override {
return "lower"; }
430 const char *
func_name()
const override {
return "upper"; }
441 const char *
func_name()
const override {
return "left"; }
452 const char *
func_name()
const override {
return "right"; }
466 :
super(pos, a, b, c) {}
470 const char *
func_name()
const override {
return "substr"; }
481 const char *
func_name()
const override {
return "substring_index"; }
597 pointer_cast<Check_function_as_value_generator_parameters *>(
619 const char *
func_name()
const override {
return "database"; }
650 pointer_cast<Check_function_as_value_generator_parameters *>(
665 const char *
func_name()
const override {
return "user"; }
685 const char *
func_name()
const override {
return "current_user"; }
701 const char *
func_name()
const override {
return "soundex"; }
712 const char *
func_name()
const override {
return "elt"; }
734 const char *
func_name()
const override {
return "make_set"; }
763 const char *
func_name()
const override {
return "format"; }
784 const char *
func_name()
const override {
return "char"; }
795 const char *
func_name()
const override {
return "repeat"; }
803 const char *
func_name()
const override {
return "space"; }
814 const char *
func_name()
const override {
return "rpad"; }
825 const char *
func_name()
const override {
return "lpad"; }
839 const char *
func_name()
const override {
return "uuid_to_bin"; }
853 const char *
func_name()
const override {
return "bin_to_uuid"; }
862 const char *
func_name()
const override {
return "is_uuid"; }
876 const char *
func_name()
const override {
return "conv"; }
886 const char *
func_name()
const override {
return "hex"; }
899 const char *
func_name()
const override {
return "unhex"; }
929 const char *
func_name()
const override {
return "like_range_min"; }
936 const char *
func_name()
const override {
return "like_range_max"; }
1013 bool eq(
const Item *item,
bool binary_cmp)
const override;
1014 const char *
func_name()
const override {
return "cast_as_char"; }
1029 const char *
func_name()
const override {
return "load_file"; }
1042 pointer_cast<Check_function_as_value_generator_parameters *>(
1060 const char *
func_name()
const override {
return "export_set"; }
1081 bool cache_if_const)
1085 const char *
func_name()
const override {
return "convert"; }
1103 bool eq(
const Item *item,
bool binary_cmp)
const override;
1104 const char *
func_name()
const override {
return "collate"; }
1120 const char *
func_name()
const override {
return "charset"; }
1134 const char *
func_name()
const override {
return "collation"; }
1155 uint num_codepoints_arg,
uint flags_arg,
1156 bool as_binary_arg =
false)
1165 const char *
func_name()
const override {
return "weight_string"; }
1166 bool eq(
const Item *item,
bool binary_cmp)
const override;
1195 const char *
func_name()
const override {
return "uncompressed_length"; }
1210 const char *
func_name()
const override {
return "compress"; }
1225 const char *
func_name()
const override {
return "uncompress"; }
1245 pointer_cast<Check_function_as_value_generator_parameters *>(
1260 const char *
func_name()
const override {
return "current_role"; }
1300 const char *
func_name()
const override {
return "roles_graphml"; }
1340 const char *
func_name()
const override {
return "get_dd_column_privileges"; }
1361 const char *
func_name()
const override {
return "get_dd_create_options"; }
1382 const char *
func_name()
const override {
return "get_dd_schema_options"; }
1407 return "internal_get_comment_or_error";
1430 return "get_dd_tablespace_private_data";
1452 const char *
func_name()
const override {
return "get_dd_index_private_data"; }
1474 return "internal_get_partition_nodegroup";
1497 const char *
func_name()
const override {
return "internal_tablespace_type"; }
1520 return "internal_tablespace_logfile_group_name";
1544 return "internal_tablespace_status";
1567 return "internal_tablespace_row_format";
1590 const char *
func_name()
const override {
return "internal_tablespace_extra"; }
1606 const char *
func_name()
const override {
return "convert_cpu_id_mask"; }
1625 const char *
func_name()
const override {
return "get_dd_property_key_value"; }
1644 const char *
func_name()
const override {
return "remove_dd_property_key"; }
1666 return "convert_interval_to_user_interval";
1686 const char *
func_name()
const override {
return "internal_get_username"; }
1705 const char *
func_name()
const override {
return "internal_get_hostname"; }
1725 return "internal_get_enabled_role_json";
1746 return "internal_get_mandatory_roles_json";
1769 return "internal_get_dd_column_extra";
void set(const DTCollation &dt)
Definition: item.h:195
void set_repertoire(uint repertoire_arg)
Definition: item.h:221
const CHARSET_INFO * collation
Definition: item.h:177
Definition: item_cmpfunc.h:295
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_cmpfunc.h:329
The following types of conversions are considered safe:
Definition: item_strfunc.h:947
const CHARSET_INFO * m_cast_cs
The character set we are converting to.
Definition: item_strfunc.h:952
bool m_safe
Definition: item_strfunc.h:961
bool m_charset_conversion
If true, conversion is needed so do it, else allow string copy.
Definition: item_strfunc.h:950
const CHARSET_INFO * m_from_cs
The character set we are converting from.
Definition: item_strfunc.h:954
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3611
Item_charset_conversion(const POS &pos, Item *a, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:994
bool m_use_cached_value
Marks whether the underlying Item is constant and may be cached.
Definition: item_strfunc.h:957
String * val_str(String *) override
Definition: item_strfunc.cc:3502
longlong m_cast_length
Length argument value, if any given.
Definition: item_strfunc.h:959
String m_tmp_value
Definition: item_strfunc.h:955
Item_charset_conversion(THD *thd, Item *a, const CHARSET_INFO *cs_arg, bool cache_if_const)
Definition: item_strfunc.h:975
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:3580
Definition: item_strfunc.h:299
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:307
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:309
String * val_str(String *) override
Definition: item_strfunc.cc:653
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:305
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:303
Item_str_func super
Definition: item_strfunc.h:300
const char * func_name() const override
Definition: item_strfunc.h:318
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:312
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_strfunc.cc:643
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:700
Definition: item_strfunc.h:276
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:290
String * val_str(String *) override
Definition: item_strfunc.cc:579
const char * func_name() const override
Definition: item_strfunc.h:296
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:283
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:281
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_strfunc.cc:569
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:633
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:285
String tmp_value
Definition: item_strfunc.h:277
Item_str_func super
Definition: item_strfunc.h:278
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:287
Definition: item_strfunc.h:842
char m_text_buf[binary_log::Uuid::TEXT_LENGTH+1]
Buffer to store the text result.
Definition: item_strfunc.h:844
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2859
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:2868
Item_func_bin_to_uuid(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:849
Item_func_bin_to_uuid(const POS &pos, Item *arg1)
Definition: item_strfunc.h:847
const char * func_name() const override
Definition: item_strfunc.h:853
Definition: item_strfunc.h:768
Item_func_char(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:770
Item_func_char(const POS &pos, PT_item_list *list, const CHARSET_INFO *cs)
Definition: item_strfunc.h:774
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:779
String * val_str(String *) override
Definition: item_strfunc.cc:2499
const char * func_name() const override
Definition: item_strfunc.h:784
Definition: item_strfunc.h:1114
Item_func_charset(const POS &pos, Item *a)
Definition: item_strfunc.h:1116
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1121
String * val_str(String *) override
Definition: item_strfunc.cc:3167
const char * func_name() const override
Definition: item_strfunc.h:1120
Definition: item_strfunc.h:1128
String * val_str(String *) override
Definition: item_strfunc.cc:3181
const char * func_name() const override
Definition: item_strfunc.h:1134
Item_func_collation(const POS &pos, Item *a)
Definition: item_strfunc.h:1130
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1135
Definition: item_strfunc.h:1204
String buffer
Definition: item_strfunc.h:1205
Item_func_compress(const POS &pos, Item *a)
Definition: item_strfunc.h:1208
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4067
String * val_str(String *str) override
Definition: item_strfunc.cc:4075
const char * func_name() const override
Definition: item_strfunc.h:1210
Definition: item_strfunc.h:354
const char * func_name() const override
Definition: item_strfunc.h:367
Item_func_concat_ws(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:361
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1162
String tmp_value
Definition: item_strfunc.h:355
String * val_str(String *) override
concat with separator.
Definition: item_strfunc.cc:1129
Item_func_concat_ws(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:357
Definition: item_strfunc.h:340
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:1083
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1105
Item_func_concat(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:346
Item_func_concat(Item *a, Item *b)
Definition: item_strfunc.h:345
Item_func_concat(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:343
const char * func_name() const override
Definition: item_strfunc.h:351
String tmp_value
Definition: item_strfunc.h:341
Definition: item_strfunc.h:1073
Item_func_conv_charset(const POS &pos, Item *a, const CHARSET_INFO *cs)
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:3074
const char * func_name() const override
Definition: item_strfunc.h:1085
Item_func_conv_charset(THD *thd, Item *a, const CHARSET_INFO *cs, bool cache_if_const)
Definition: item_strfunc.h:1080
Definition: item_strfunc.h:870
String * val_str(String *) override
Definition: item_strfunc.cc:3003
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2996
static constexpr uint32_t CONV_MAX_LENGTH
Definition: item_strfunc.h:873
Item_func_conv(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:874
const char * func_name() const override
Definition: item_strfunc.h:876
Definition: item_strfunc.h:1595
const char * func_name() const override
Definition: item_strfunc.h:1606
Item_func_convert_cpu_id_mask(const POS &pos, Item *list)
Definition: item_strfunc.h:1597
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1600
String * val_str(String *) override
Definition: item_strfunc.cc:5054
Definition: item_strfunc.h:1649
const char * func_name() const override
Definition: item_strfunc.h:1665
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1655
enum Functype functype() const override
Definition: item_strfunc.h:1654
String * val_str(String *) override
Definition: item_strfunc.cc:5268
Item_func_convert_interval_to_user_interval(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1651
Definition: item_strfunc.h:1173
const char * func_name() const override
Definition: item_strfunc.h:1180
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1181
Item_func_crc32(const POS &pos, Item *a)
Definition: item_strfunc.h:1177
longlong val_int() override
Definition: item_strfunc.cc:4055
String value
Definition: item_strfunc.h:1174
Definition: item_strfunc.h:1253
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1267
void set_current_role(THD *thd)
Definition: item_strfunc.cc:5110
Item_func_current_role()
Definition: item_strfunc.h:1257
const char * func_name() const override
Definition: item_strfunc.h:1260
bool value_cache_set
a flag whether value_cache is set or not
Definition: item_strfunc.h:1274
Item_func_sysconst super
Definition: item_strfunc.h:1254
Item_func_current_role(const POS &pos)
Definition: item_strfunc.h:1258
String * val_str(String *) override
Definition: item_strfunc.cc:5105
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1263
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1282
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5097
Definition: item_strfunc.h:673
Item_func_user super
Definition: item_strfunc.h:674
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_strfunc.cc:2017
Item_func_current_user(const POS &pos)
Definition: item_strfunc.h:682
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:686
const char * func_name() const override
Definition: item_strfunc.h:685
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:1962
String * val_str(String *) override
Definition: item_strfunc.cc:1968
Name_resolution_context * context
Definition: item_strfunc.h:676
Definition: item_strfunc.h:605
Item_func_sysconst super
Definition: item_strfunc.h:606
String * val_str(String *) override
Definition: item_strfunc.cc:1932
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_strfunc.cc:1924
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:614
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:620
Item_func_database(const POS &pos)
Definition: item_strfunc.h:609
const char * func_name() const override
Definition: item_strfunc.h:619
Definition: item_strfunc.h:704
const char * func_name() const override
Definition: item_strfunc.h:712
longlong val_int() override
Definition: item_strfunc.cc:2343
String * val_str(String *str) override
Definition: item_strfunc.cc:2356
double val_real() override
Definition: item_strfunc.cc:2331
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2313
Item_func_elt(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:706
Definition: item_strfunc.h:1049
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1051
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:1055
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1053
String * val_str(String *str) override
Definition: item_strfunc.cc:3732
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3801
const char * func_name() const override
Definition: item_strfunc.h:1060
Definition: item_strfunc.h:266
String tmp_value
Definition: item_strfunc.h:267
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:795
const char * func_name() const override
Definition: item_strfunc.h:273
String * val_str(String *) override
Definition: item_strfunc.cc:807
Item_func_from_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:270
Definition: item_strfunc.h:1321
Item_func_get_dd_column_privileges(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1323
const char * func_name() const override
Definition: item_strfunc.h:1340
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1327
enum Functype functype() const override
Definition: item_strfunc.h:1326
String * val_str(String *) override
This function prepares string with list of column privileges.
Definition: item_strfunc.cc:4350
Definition: item_strfunc.h:1345
enum Functype functype() const override
Definition: item_strfunc.h:1350
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1351
String * val_str(String *) override
This function prepares string representing create_options for table.
Definition: item_strfunc.cc:4422
Item_func_get_dd_create_options(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1347
const char * func_name() const override
Definition: item_strfunc.h:1361
Definition: item_strfunc.h:1436
const char * func_name() const override
Definition: item_strfunc.h:1452
Item_func_get_dd_index_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1438
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1442
String * val_str(String *) override
This function prepares string representing se_private_data for index.
Definition: item_strfunc.cc:4967
enum Functype functype() const override
Definition: item_strfunc.h:1441
Definition: item_strfunc.h:1611
String * val_str(String *) override
This function prepares string representing value stored at key supplied.
Definition: item_strfunc.cc:5165
enum Functype functype() const override
Definition: item_strfunc.h:1616
Item_func_get_dd_property_key_value(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1613
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1617
const char * func_name() const override
Definition: item_strfunc.h:1625
Definition: item_strfunc.h:1366
String * val_str(String *) override
This function prepares string representing options for a schema.
Definition: item_strfunc.cc:4623
const char * func_name() const override
Definition: item_strfunc.h:1382
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1372
enum Functype functype() const override
Definition: item_strfunc.h:1371
Item_func_get_dd_schema_options(const POS &pos, Item *a)
Definition: item_strfunc.h:1368
Definition: item_strfunc.h:1413
String * val_str(String *) override
This function prepares string representing se_private_data for tablespace.
Definition: item_strfunc.cc:4901
const char * func_name() const override
Definition: item_strfunc.h:1429
enum Functype functype() const override
Definition: item_strfunc.h:1418
Item_func_get_dd_tablespace_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1415
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1419
Definition: item_strfunc.h:1457
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1463
String * val_str(String *) override
Definition: item_strfunc.cc:4748
enum Functype functype() const override
Definition: item_strfunc.h:1462
Item_func_get_partition_nodegroup(const POS &pos, Item *a)
Definition: item_strfunc.h:1459
const char * func_name() const override
Definition: item_strfunc.h:1473
Definition: item_strfunc.h:881
String tmp_value
Definition: item_strfunc.h:882
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3356
Item_func_hex(const POS &pos, Item *a)
Definition: item_strfunc.h:885
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:3368
const char * func_name() const override
Definition: item_strfunc.h:886
Definition: item_strfunc.h:395
String * val_str(String *) override
Definition: item_strfunc.cc:1313
const char * func_name() const override
Definition: item_strfunc.h:406
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1365
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:398
Item_func_insert(const POS &pos, Item *org, Item *start, Item *length, Item *new_str)
Definition: item_strfunc.h:401
String tmp_value
Definition: item_strfunc.h:396
Definition: item_strfunc.h:1752
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1758
String * val_str(String *) override
This function prepares string representing EXTRA column for I_S.COLUMNS.
Definition: item_strfunc.cc:5444
const char * func_name() const override
Definition: item_strfunc.h:1768
Item_func_internal_get_dd_column_extra(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1754
enum Functype functype() const override
Definition: item_strfunc.h:1757
Definition: item_strfunc.h:1710
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1716
enum Functype functype() const override
Definition: item_strfunc.h:1715
Item_func_internal_get_enabled_role_json(const POS &pos)
Definition: item_strfunc.h:1712
String * val_str(String *) override
Definition: item_strfunc.cc:5363
const char * func_name() const override
Definition: item_strfunc.h:1724
Definition: item_strfunc.h:1691
Item_func_internal_get_hostname(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1693
enum Functype functype() const override
Definition: item_strfunc.h:1696
const char * func_name() const override
Definition: item_strfunc.h:1705
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1697
String * val_str(String *) override
Definition: item_strfunc.cc:5328
Definition: item_strfunc.h:1731
const char * func_name() const override
Definition: item_strfunc.h:1745
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1737
enum Functype functype() const override
Definition: item_strfunc.h:1736
Item_func_internal_get_mandatory_roles_json(const POS &pos)
Definition: item_strfunc.h:1733
String * val_str(String *) override
Definition: item_strfunc.cc:5395
Definition: item_strfunc.h:1672
String * val_str(String *) override
Definition: item_strfunc.cc:5291
Item_func_internal_get_username(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1674
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1678
enum Functype functype() const override
Definition: item_strfunc.h:1677
const char * func_name() const override
Definition: item_strfunc.h:1686
Definition: item_strfunc.h:1502
const char * func_name() const override
Definition: item_strfunc.h:1519
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1509
String * val_str(String *) override
Definition: item_strfunc.cc:4805
Item_func_internal_tablespace_logfile_group_name(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1504
enum Functype functype() const override
Definition: item_strfunc.h:1508
Definition: item_strfunc.h:1526
Item_func_internal_tablespace_status(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1528
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1533
String * val_str(String *) override
Definition: item_strfunc.cc:4828
enum Functype functype() const override
Definition: item_strfunc.h:1532
const char * func_name() const override
Definition: item_strfunc.h:1543
Definition: item_strfunc.h:1480
enum Functype functype() const override
Definition: item_strfunc.h:1486
String * val_str(String *) override
Definition: item_strfunc.cc:4788
const char * func_name() const override
Definition: item_strfunc.h:1497
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1487
Item_func_internal_tablespace_type(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1482
Definition: item_strfunc.h:856
const char * func_name() const override
Definition: item_strfunc.h:862
longlong val_int() override
Definition: item_strfunc.cc:2910
Item_func_is_uuid(const POS &pos, Item *a)
Definition: item_strfunc.h:860
Item_bool_func super
Definition: item_strfunc.h:857
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:863
Definition: item_strfunc.h:434
Item_func_left(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:438
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1481
String tmp_value
Definition: item_strfunc.h:435
String * val_str(String *) override
Definition: item_strfunc.cc:1434
const char * func_name() const override
Definition: item_strfunc.h:441
Definition: item_strfunc.h:932
const char * func_name() const override
Definition: item_strfunc.h:936
Item_func_like_range_max(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:934
Definition: item_strfunc.h:925
const char * func_name() const override
Definition: item_strfunc.h:929
Item_func_like_range_min(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:927
Definition: item_strfunc.h:905
String max_str
Definition: item_strfunc.h:908
const bool is_min
Definition: item_strfunc.h:909
Item_func_like_range(const POS &pos, Item *a, Item *b, bool is_min_arg)
Definition: item_strfunc.h:912
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:917
String min_str
Definition: item_strfunc.h:907
String * val_str(String *) override
Definition: item_strfunc.cc:3442
Definition: item_strfunc.h:420
const char * func_name() const override
Definition: item_strfunc.h:423
Item_func_lower(const POS &pos, Item *item)
Definition: item_strfunc.h:422
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1412
Definition: item_strfunc.h:817
String * val_str(String *) override
Definition: item_strfunc.cc:2923
Item_func_lpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:821
String tmp_value
Definition: item_strfunc.h:818
String lpad_str
Definition: item_strfunc.h:818
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2790
const char * func_name() const override
Definition: item_strfunc.h:825
Definition: item_strfunc.h:565
Item_func_ltrim(const POS &pos, Item *a)
Definition: item_strfunc.h:567
Definition: item_strfunc.h:715
Item_func_make_set(const POS &pos, Item *a, PT_item_list *opt_list)
Definition: item_strfunc.h:722
String * val_str(String *str) override
Definition: item_strfunc.cc:2444
bool walk(Item_processor processor, enum_walk walk, uchar *arg) override
Traverses a tree of Items in prefix and/or postfix order.
Definition: item_strfunc.h:736
Item_str_func super
Definition: item_strfunc.h:716
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2488
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2421
String tmp_str
Definition: item_strfunc.h:719
void split_sum_func(THD *thd, Ref_item_array ref_item_array, mem_root_deque< Item * > *fields) override
See comments in Item_cmp_func::split_sum_func()
Definition: item_strfunc.cc:2386
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:2392
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_strfunc.cc:2376
void fix_after_pullout(Query_block *parent_query_block, Query_block *removed_query_block) override
Fix after tables have been moved from one query_block level to the parent level, e....
Definition: item_strfunc.cc:2413
const char * func_name() const override
Definition: item_strfunc.h:734
void update_used_tables() override
Updates used tables, not null tables information and accumulates properties up the item tree,...
Definition: item_strfunc.cc:2436
Item * item
Definition: item_strfunc.h:718
Item * transform(Item_transformer transformer, uchar *arg) override
Transform an Item_func object with a transformer callback function.
Definition: item_strfunc.cc:2481
Definition: item_strfunc.h:181
const char * func_name() const override
Definition: item_strfunc.h:188
Item_func_md5(const POS &pos, Item *a)
Definition: item_strfunc.h:185
String tmp_value
Definition: item_strfunc.h:182
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:227
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:185
Definition: item_strfunc.h:1063
String * val_str(String *) override
QUOTE() function returns argument string in single quotes suitable for using in a SQL statement.
Definition: item_strfunc.cc:3860
Item_func_quote(const POS &pos, Item *a)
Definition: item_strfunc.h:1067
String tmp_value
Definition: item_strfunc.h:1064
const char * func_name() const override
Definition: item_strfunc.h:1068
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3820
Definition: item_strfunc.h:321
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:335
static const ulonglong MAX_RANDOM_BYTES_BUFFER
limitation from the SSL library
Definition: item_strfunc.h:325
Item_str_func super
Definition: item_strfunc.h:322
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:724
Item_func_random_bytes(const POS &pos, Item *a)
Definition: item_strfunc.h:328
String * val_str(String *a) override
Definition: item_strfunc.cc:730
const char * func_name() const override
Definition: item_strfunc.h:334
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_strfunc.cc:707
Definition: item_strfunc.h:1630
Item_func_remove_dd_property_key(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1632
const char * func_name() const override
Definition: item_strfunc.h:1644
String * val_str(String *) override
This function removes a key value from given property string.
Definition: item_strfunc.cc:5222
enum Functype functype() const override
Definition: item_strfunc.h:1635
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1636
Definition: item_strfunc.h:787
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2549
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:2589
String tmp_value
Definition: item_strfunc.h:788
Item_func_repeat(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:791
const char * func_name() const override
Definition: item_strfunc.h:795
Definition: item_strfunc.h:382
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1293
String * val_str(String *) override
Replace all occurrences of string2 in string1 with string3.
Definition: item_strfunc.cc:1231
const char * func_name() const override
Definition: item_strfunc.h:392
String tmp_value
Definition: item_strfunc.h:383
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:385
String tmp_value2
Definition: item_strfunc.h:383
Item_func_replace(const POS &pos, Item *org, Item *find, Item *replace)
Definition: item_strfunc.h:388
Definition: item_strfunc.h:370
Item_func_reverse(Item *a)
Definition: item_strfunc.h:374
String * val_str(String *) override
Definition: item_strfunc.cc:1183
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1219
String tmp_value
Definition: item_strfunc.h:371
Item_func_reverse(const POS &pos, Item *a)
Definition: item_strfunc.h:375
const char * func_name() const override
Definition: item_strfunc.h:379
Definition: item_strfunc.h:444
Item_func_right(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:448
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1512
const char * func_name() const override
Definition: item_strfunc.h:452
String * val_str(String *) override
Definition: item_strfunc.cc:1490
String tmp_value
Definition: item_strfunc.h:445
Definition: item_strfunc.h:1285
Item_func_roles_graphml(const POS &pos)
Definition: item_strfunc.h:1290
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5148
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1315
Item_func_sysconst super
Definition: item_strfunc.h:1286
const char * func_name() const override
Definition: item_strfunc.h:1300
Item_func_roles_graphml()
Definition: item_strfunc.h:1289
bool calculate_graphml(THD *thd)
Constructs and caches the graphml string.
Definition: item_strfunc.cc:5128
String * val_str(String *) override
Definition: item_strfunc.cc:5143
bool value_cache_set
Set to true if value_cache is set.
Definition: item_strfunc.h:1318
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1295
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1302
Definition: item_strfunc.h:806
String tmp_value
Definition: item_strfunc.h:807
Item_func_rpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:810
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2692
String * val_str(String *) override
Definition: item_strfunc.cc:2718
const char * func_name() const override
Definition: item_strfunc.h:814
String rpad_str
Definition: item_strfunc.h:807
Definition: item_strfunc.h:571
Item_func_rtrim(const POS &pos, Item *a)
Definition: item_strfunc.h:573
Definition: item_strfunc.h:1090
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3141
LEX_STRING collation_string
Definition: item_strfunc.h:1093
Item_field * field_for_view_update() override
Definition: item_strfunc.h:1108
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3156
Item_func_set_collation(const POS &pos, Item *a, const LEX_STRING &collation_string_arg)
Definition: item_strfunc.h:1096
const char * func_name() const override
Definition: item_strfunc.h:1104
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3101
enum Functype functype() const override
Definition: item_strfunc.h:1105
String * val_str(String *) override
Definition: item_strfunc.cc:3093
Item_str_func super
Definition: item_strfunc.h:1091
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_strfunc.cc:3083
Definition: item_strfunc.h:199
const char * func_name() const override
Definition: item_strfunc.h:205
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:271
Item_func_sha2(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:201
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:345
Definition: item_strfunc.h:191
const char * func_name() const override
Definition: item_strfunc.h:196
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:235
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:256
Item_func_sha(const POS &pos, Item *a)
Definition: item_strfunc.h:193
Definition: item_strfunc.h:693
Item_func_soundex(const POS &pos, Item *a)
Definition: item_strfunc.h:698
String tmp_value
Definition: item_strfunc.h:694
Item_func_soundex(Item *a)
Definition: item_strfunc.h:697
String * val_str(String *) override
Definition: item_strfunc.cc:2069
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2025
const char * func_name() const override
Definition: item_strfunc.h:701
Definition: item_strfunc.h:798
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2633
String * val_str(String *) override
Definition: item_strfunc.cc:2664
const char * func_name() const override
Definition: item_strfunc.h:803
Item_func_space(const POS &pos, Item *arg1)
Definition: item_strfunc.h:800
Definition: item_strfunc.h:240
bool resolve_type(THD *thd) override
The type is always LONGTEXT, just like the digest_text columns in Performance Schema.
Definition: item_strfunc.cc:1044
const char * func_name() const override
Definition: item_strfunc.h:245
uchar * m_token_buffer
Definition: item_strfunc.h:263
Item_func_statement_digest_text(const POS &pos, Item *query_string)
Definition: item_strfunc.h:242
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:253
String * val_str(String *) override
Definition: item_strfunc.cc:1052
Definition: item_strfunc.h:218
uchar * m_token_buffer
Definition: item_strfunc.h:237
Item_func_statement_digest(const POS &pos, Item *query_string)
Definition: item_strfunc.h:220
const char * func_name() const override
Definition: item_strfunc.h:223
String * val_str_ascii(String *) override
Implementation of the STATEMENT_DIGEST() native function.
Definition: item_strfunc.cc:1014
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:999
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:224
Definition: item_strfunc.h:473
String * val_str(String *) override
Definition: item_strfunc.cc:1619
Item_func_substr_index(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:477
String tmp_value
Definition: item_strfunc.h:474
const char * func_name() const override
Definition: item_strfunc.h:481
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1609
Definition: item_strfunc.h:455
const char * func_name() const override
Definition: item_strfunc.h:470
Item_func_substr(Item *a, Item *b)
Definition: item_strfunc.h:461
Item_func_substr(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:464
String tmp_value
Definition: item_strfunc.h:458
Item_func_substr(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:462
Item_str_func super
Definition: item_strfunc.h:456
String * val_str(String *) override
Definition: item_strfunc.cc:1522
Item_func_substr(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:465
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1569
Definition: item_strfunc.h:577
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:595
Item * safe_charset_converter(THD *thd, const CHARSET_INFO *tocs) override
Definition: item_strfunc.cc:1902
virtual const Name_string fully_qualified_func_name() const =0
Item_func_sysconst(const POS &pos)
Definition: item_strfunc.h:584
Item_str_func super
Definition: item_strfunc.h:578
Item_func_sysconst()
Definition: item_strfunc.h:581
Definition: item_strfunc.h:208
const char * func_name() const override
Definition: item_strfunc.h:215
Item_func_to_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:212
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:761
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:777
String tmp_value
Definition: item_strfunc.h:209
Definition: item_strfunc.h:484
const bool m_trim_trailing
Definition: item_strfunc.h:505
bool trim_trailing() const
Definition: item_strfunc.h:537
bool trim_leading() const
Definition: item_strfunc.h:532
const char * func_name() const override
Definition: item_strfunc.h:544
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1833
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:1872
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:491
@ TRIM_BOTH_DEFAULT
Definition: item_strfunc.h:492
@ TRIM_LTRIM
Definition: item_strfunc.h:496
@ TRIM_RTRIM
Definition: item_strfunc.h:497
@ TRIM_BOTH
Definition: item_strfunc.h:493
@ TRIM_LEADING
Definition: item_strfunc.h:494
@ TRIM_TRAILING
Definition: item_strfunc.h:495
Item_func_trim(Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:520
Item_func_trim(Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:508
Item_func_trim(const POS &pos, Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:526
String tmp_value
Definition: item_strfunc.h:501
const TRIM_MODE m_trim_mode
Definition: item_strfunc.h:503
Item_func_trim(const POS &pos, Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:514
String remove
Definition: item_strfunc.h:502
const bool m_trim_leading
Definition: item_strfunc.h:504
String * val_str(String *) override
Definition: item_strfunc.cc:1736
Definition: item_strfunc.h:1214
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1219
const char * func_name() const override
Definition: item_strfunc.h:1225
String * val_str(String *str) override
Definition: item_strfunc.cc:4124
String buffer
Definition: item_strfunc.h:1215
Item_func_uncompress(const POS &pos, Item *a)
Definition: item_strfunc.h:1218
Definition: item_strfunc.h:1189
const char * func_name() const override
Definition: item_strfunc.h:1195
Item_func_uncompressed_length(const POS &pos, Item *a)
Definition: item_strfunc.h:1193
String value
Definition: item_strfunc.h:1190
longlong val_int() override
Definition: item_strfunc.cc:4026
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1196
Definition: item_strfunc.h:891
Item_func_unhex(const POS &pos, Item *a)
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:3398
String * val_str(String *) override
Convert given hex string to a binary string.
Definition: item_strfunc.cc:3410
String tmp_value
Definition: item_strfunc.h:892
const char * func_name() const override
Definition: item_strfunc.h:899
Definition: item_strfunc.h:427
Item_func_upper(const POS &pos, Item *item)
Definition: item_strfunc.h:429
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1423
const char * func_name() const override
Definition: item_strfunc.h:430
Definition: item_strfunc.h:625
Item_func_user(const POS &pos)
Definition: item_strfunc.h:638
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:642
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:666
String * val_str(String *) override
Definition: item_strfunc.cc:1953
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_strfunc.cc:2007
Item_func_sysconst super
Definition: item_strfunc.h:626
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.h:660
Item_func_user()
Definition: item_strfunc.h:637
const char * func_name() const override
Definition: item_strfunc.h:665
bool evaluate(const char *user, const char *host)
Evaluate user name, must be called once per execution.
Definition: item_strfunc.cc:1984
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:1948
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:656
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:648
bool m_evaluated
True when function value is evaluated, set to false after each execution.
Definition: item_strfunc.h:630
Definition: item_strfunc.h:828
String * val_str(String *) override
Definition: item_strfunc.cc:2825
Item_func_uuid_to_bin(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:835
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2817
Item_func_uuid_to_bin(const POS &pos, Item *arg1)
Definition: item_strfunc.h:833
const char * func_name() const override
Definition: item_strfunc.h:839
uchar m_bin_buf[binary_log::Uuid::BYTE_LENGTH]
Buffer to store the binary result.
Definition: item_strfunc.h:830
Definition: item_strfunc.h:1229
Item_func_uuid(const POS &pos)
Definition: item_strfunc.h:1234
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:1243
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:1237
String * val_str(String *) override
Definition: item_strfunc.cc:4331
const char * func_name() const override
Definition: item_strfunc.h:1241
Item_func_uuid()
Definition: item_strfunc.h:1233
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4210
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_strfunc.cc:4216
Item_str_func super
Definition: item_strfunc.h:1230
Definition: item_strfunc.h:1143
String * val_str(String *) override
Definition: item_strfunc.cc:3268
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3249
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3215
const char * func_name() const override
Definition: item_strfunc.h:1165
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_strfunc.cc:3192
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3203
const uint num_codepoints
Definition: item_strfunc.h:1148
String tmp_value
Definition: item_strfunc.h:1146
Item_str_func super
Definition: item_strfunc.h:1144
Item_field * m_field_ref
Definition: item_strfunc.h:1150
const uint result_length
Definition: item_strfunc.h:1149
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:1154
const bool as_binary
Definition: item_strfunc.h:1151
uint flags
Definition: item_strfunc.h:1147
Definition: item_func.h:102
Item ** args
Array of pointers to arguments.
Definition: item_func.h:109
Functype
Definition: item_func.h:185
@ COLLATE_FUNC
Definition: item_func.h:231
@ DD_INTERNAL_FUNC
Definition: item_func.h:241
@ TYPECAST_FUNC
Definition: item_func.h:233
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:519
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:132
bool null_on_null
Affects how to determine that NULL argument implies a NULL function return.
Definition: item_func.h:164
Definition: item_func.h:935
Definition: item_strfunc.h:1019
bool itemize(Parse_context *pc, Item **res) override
The same as contextualize() but with additional parameter.
Definition: item_strfunc.cc:3659
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1033
String tmp_value
Definition: item_strfunc.h:1022
Item_str_func super
Definition: item_strfunc.h:1020
String * val_str(String *) override
Definition: item_strfunc.cc:3667
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:1040
Item_load_file(const POS &pos, Item *a)
Definition: item_strfunc.h:1025
const char * func_name() const override
Definition: item_strfunc.h:1029
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:1030
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item.cc:10680
virtual const char * func_name() const =0
Definition: item_strfunc.h:144
Item_str_ascii_func(Item *a, Item *b)
Definition: item_strfunc.h:159
Item_str_ascii_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:170
String * val_str_ascii(String *) override=0
Item_str_ascii_func()
Definition: item_strfunc.h:148
Item_str_ascii_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:167
String ascii_buf
Definition: item_strfunc.h:145
Item_str_ascii_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:162
Item_str_ascii_func(const POS &pos, Item *a)
Definition: item_strfunc.h:155
Item_str_ascii_func(Item *a)
Definition: item_strfunc.h:152
String * val_str(String *str) override
Definition: item_strfunc.h:175
Definition: item_strfunc.h:409
String * val_str(String *) override
Definition: item_strfunc.cc:1380
Item_str_conv(const POS &pos, Item *item)
Definition: item_strfunc.h:416
String tmp_value
Definition: item_strfunc.h:413
uint multiply
Definition: item_strfunc.h:411
my_charset_conv_case converter
Definition: item_strfunc.h:412
Definition: item_strfunc.h:76
Item_str_func()
Definition: item_strfunc.h:80
String * val_str_from_val_str_ascii(String *str, String *str2)
Definition: item_strfunc.cc:142
Item_str_func(Item *a, Item *b)
Definition: item_strfunc.h:88
my_decimal * val_decimal(my_decimal *) override
Definition: item_strfunc.cc:174
String * push_packet_overflow_warning(THD *thd, const char *func)
Calls push_warning_printf for packet overflow.
Definition: item_strfunc.cc:1471
Item_str_func(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:112
Item_str_func(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:110
Item_str_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:94
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_strfunc.h:118
Item_func super
Definition: item_strfunc.h:77
bool get_time(MYSQL_TIME *ltime) override
Definition: item_strfunc.h:121
Item_str_func(Item *a)
Definition: item_strfunc.h:84
Item_str_func(Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:97
void left_right_max_length(THD *thd)
Definition: item_strfunc.cc:1454
enum Item_result result_type() const override
Definition: item_strfunc.h:124
Item_str_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:92
longlong val_int() override
Definition: item_strfunc.h:115
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:107
Item_str_func(const POS &pos, Item *a)
Definition: item_strfunc.h:86
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:127
double val_real() override
Definition: item_strfunc.h:116
Item_str_func(const POS &pos)
Definition: item_strfunc.h:82
Item_str_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:90
Item_str_func(Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:102
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:164
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:105
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:99
Definition: item_strfunc.h:1000
const char * func_name() const override
Definition: item_strfunc.h:1014
Item_typecast_char(THD *thd, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1002
Item_typecast_char(const POS &pos, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1007
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3472
enum Functype functype() const override
Definition: item_strfunc.h:1012
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3489
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:853
String str_value
str_values's main purpose is to cache the value in save_in_field
Definition: item.h:3367
void set_nullable(bool nullable)
Definition: item.h:3472
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:3374
bool get_time_from_string(MYSQL_TIME *ltime)
Convert val_str() to time in MYSQL_TIME.
Definition: item.cc:1540
void set_data_type_blob(uint32 max_l)
Set the Item to be of BLOB type.
Definition: item.h:1541
virtual Item_field * field_for_view_update()
Definition: item.h:3003
bool fixed
True if item has been resolved.
Definition: item.h:3460
bool null_value
True if item is null.
Definition: item.h:3497
bool unsigned_flag
Definition: item.h:3498
longlong val_int_from_string()
Definition: item.cc:500
bool get_date_from_string(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_str() to date in MYSQL_TIME.
Definition: item.cc:1453
virtual bool walk(Item_processor processor, enum_walk walk, uchar *arg)
Traverses a tree of Items in prefix and/or postfix order.
Definition: item.h:2463
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1459
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:1203
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:3392
double val_real_from_string()
Definition: item.cc:446
Definition: sql_list.h:434
Definition: sql_locale.h:37
Storage for name strings.
Definition: item.h:288
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:105
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:139
This class represents a query block, aka a query specification, which is a query consisting of a SELE...
Definition: sql_lex.h:1156
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:168
void mem_free()
Definition: sql_string.h:379
void mark_as_const()
Definition: sql_string.h:248
bool copy()
Definition: sql_string.cc:192
void set(String &str, size_t offset, size_t arg_length)
Definition: sql_string.h:281
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:34
A (partial) implementation of std::deque allocating its blocks on a MEM_ROOT.
Definition: mem_root_deque.h:110
my_decimal class limits 'decimal_t' type to what we need in MySQL.
Definition: my_decimal.h:94
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:31
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:222
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:62
static const std::string dec("DECRYPTION")
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:177
Item *(Item::* Item_transformer)(uchar *arg)
Type for transformers used by Item::transform and Item::compile.
Definition: item.h:723
#define NAME_STRING(x)
Definition: item.h:348
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:5036
String * mysql_generate_uuid(String *str)
Generate Universal Unique Identifier (UUID).
Definition: item_strfunc.cc:4224
A better implementation of the UNIX ctype(3) library.
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1545
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:297
static constexpr uint32_t MY_CS_UNICODE
Definition: m_ctype.h:132
MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:511
#define MY_REPERTOIRE_ASCII
Definition: m_ctype.h:152
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:94
Common definition between mysql server & client.
#define MAX_BLOB_WIDTH
Default width for blob in bytes.
Definition: mysql_com.h:905
#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
Time declarations shared between the server and client API: you should not add anything to this heade...
char * user
Definition: mysqladmin.cc:60
const char * host
Definition: mysqladmin.cc:59
static bool replace
Definition: mysqlimport.cc:66
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1052
Definition: commit_order_queue.h:34
const byte * find(const Pages *pages, const page_id_t &page_id) noexcept
Find a doublewrite copy of a page.
Definition: buf0dblwr.cc:3563
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
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2879
type_conversion_status
Status when storing a value in a field or converting from one datatype to another.
Definition: field.h:202
@ VGS_CHECK_CONSTRAINT
Definition: field.h:476
@ VGS_GENERATED_COLUMN
Definition: field.h:474
@ DERIVATION_COERCIBLE
Definition: field.h:182
@ DERIVATION_SYSCONST
Definition: field.h:183
File containing constants that can be used throughout the server.
constexpr const table_map RAND_TABLE_BIT
Definition: sql_const.h:111
enum_walk
Enumeration for {Item,Query_block[_UNIT],Table_function}walk.
Definition: sql_const.h:286
bool(Item::*)(unsigned char *) Item_processor
Processor type for {Item,Query_block[_UNIT],Table_function}walk.
Definition: sql_const.h:304
constexpr const table_map INNER_TABLE_BIT
Definition: sql_const.h:109
Our own string classes, used pervasively throughout the executor.
case opt name
Definition: sslopt-case.h:33
Definition: m_ctype.h:385
uint state
Definition: m_ctype.h:389
Struct used to pass around arguments to/from check_function_as_value_generator.
Definition: item.h:488
const char * banned_function_name
the name of the function which is not allowed
Definition: item.h:502
Value_generator_source source
Definition: item.h:500
Definition: mysql_lex_string.h:35
Definition: mysql_time.h:82
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:121
Bison "location" class.
Definition: parse_location.h:43
static const size_t BYTE_LENGTH
The number of bytes in the data of a Uuid.
Definition: uuid.h:137
static const size_t TEXT_LENGTH
The number of bytes in the textual representation of a Uuid.
Definition: uuid.h:160
unsigned int uint
Definition: uca9-dump.cc:75
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