25#ifndef ITEM_STRFUNC_INCLUDED
26#define ITEM_STRFUNC_INCLUDED
192 const char *
func_name()
const override {
return "md5"; }
200 const char *
func_name()
const override {
return "sha"; }
209 const char *
func_name()
const override {
return "sha2"; }
219 const char *
func_name()
const override {
return "to_base64"; }
227 const char *
func_name()
const override {
return "statement_digest"; }
230 pointer_cast<Check_function_as_value_generator_parameters *>(
249 const char *
func_name()
const override {
return "statement_digest_text"; }
259 pointer_cast<Check_function_as_value_generator_parameters *>(
277 const char *
func_name()
const override {
return "from_base64"; }
300 const char *
func_name()
const override {
return "aes_encrypt"; }
322 const char *
func_name()
const override {
return "aes_decrypt"; }
338 const char *
func_name()
const override {
return "random_bytes"; }
355 const char *
func_name()
const override {
return "concat"; }
371 const char *
func_name()
const override {
return "concat_ws"; }
383 const char *
func_name()
const override {
return "reverse"; }
396 const char *
func_name()
const override {
return "replace"; }
410 const char *
func_name()
const override {
return "insert"; }
427 const char *
func_name()
const override {
return "lower"; }
434 const char *
func_name()
const override {
return "upper"; }
445 const char *
func_name()
const override {
return "left"; }
456 const char *
func_name()
const override {
return "right"; }
470 :
super(pos, a, b, c) {}
474 const char *
func_name()
const override {
return "substr"; }
485 const char *
func_name()
const override {
return "substring_index"; }
601 pointer_cast<Check_function_as_value_generator_parameters *>(
623 const char *
func_name()
const override {
return "database"; }
654 pointer_cast<Check_function_as_value_generator_parameters *>(
669 const char *
func_name()
const override {
return "user"; }
702 const char *
func_name()
const override {
return "current_user"; }
718 const char *
func_name()
const override {
return "soundex"; }
729 const char *
func_name()
const override {
return "elt"; }
744 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"; }
800 const char *
func_name()
const override {
return "repeat"; }
808 const char *
func_name()
const override {
return "space"; }
819 const char *
func_name()
const override {
return "rpad"; }
830 const char *
func_name()
const override {
return "lpad"; }
844 const char *
func_name()
const override {
return "uuid_to_bin"; }
858 const char *
func_name()
const override {
return "bin_to_uuid"; }
867 const char *
func_name()
const override {
return "is_uuid"; }
881 const char *
func_name()
const override {
return "conv"; }
891 const char *
func_name()
const override {
return "hex"; }
904 const char *
func_name()
const override {
return "unhex"; }
934 const char *
func_name()
const override {
return "like_range_min"; }
941 const char *
func_name()
const override {
return "like_range_max"; }
1026 bool eq(
const Item *item,
bool binary_cmp)
const override;
1027 const char *
func_name()
const override {
return "cast_as_char"; }
1042 const char *
func_name()
const override {
return "load_file"; }
1055 pointer_cast<Check_function_as_value_generator_parameters *>(
1073 const char *
func_name()
const override {
return "export_set"; }
1094 bool cache_if_const)
1098 const char *
func_name()
const override {
return "convert"; }
1116 bool eq(
const Item *item,
bool binary_cmp)
const override;
1117 const char *
func_name()
const override {
return "collate"; }
1140 const char *
func_name()
const override {
return "charset"; }
1154 const char *
func_name()
const override {
return "collation"; }
1175 uint num_codepoints_arg, uint flags_arg,
1176 bool as_binary_arg =
false)
1185 const char *
func_name()
const override {
return "weight_string"; }
1186 bool eq(
const Item *item,
bool binary_cmp)
const override;
1215 const char *
func_name()
const override {
return "uncompressed_length"; }
1230 const char *
func_name()
const override {
return "compress"; }
1245 const char *
func_name()
const override {
return "uncompress"; }
1265 pointer_cast<Check_function_as_value_generator_parameters *>(
1280 const char *
func_name()
const override {
return "current_role"; }
1320 const char *
func_name()
const override {
return "roles_graphml"; }
1360 const char *
func_name()
const override {
return "get_dd_column_privileges"; }
1381 const char *
func_name()
const override {
return "get_dd_create_options"; }
1402 const char *
func_name()
const override {
return "get_dd_schema_options"; }
1427 return "internal_get_comment_or_error";
1450 return "get_dd_tablespace_private_data";
1472 const char *
func_name()
const override {
return "get_dd_index_private_data"; }
1494 return "internal_get_partition_nodegroup";
1517 const char *
func_name()
const override {
return "internal_tablespace_type"; }
1540 return "internal_tablespace_logfile_group_name";
1564 return "internal_tablespace_status";
1587 return "internal_tablespace_row_format";
1610 const char *
func_name()
const override {
return "internal_tablespace_extra"; }
1626 const char *
func_name()
const override {
return "convert_cpu_id_mask"; }
1645 const char *
func_name()
const override {
return "get_dd_property_key_value"; }
1664 const char *
func_name()
const override {
return "remove_dd_property_key"; }
1686 return "convert_interval_to_user_interval";
1706 const char *
func_name()
const override {
return "internal_get_username"; }
1725 const char *
func_name()
const override {
return "internal_get_hostname"; }
1745 return "internal_get_enabled_role_json";
1766 return "internal_get_mandatory_roles_json";
1789 return "internal_get_dd_column_extra";
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:251
void set(const DTCollation &dt)
Definition: item.h:199
void set_repertoire(uint repertoire_arg)
Definition: item.h:225
const CHARSET_INFO * collation
Definition: item.h:181
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:952
const CHARSET_INFO * m_cast_cs
The character set we are converting to.
Definition: item_strfunc.h:957
bool m_safe
Definition: item_strfunc.h:966
bool m_charset_conversion
If true, conversion is needed so do it, else allow string copy.
Definition: item_strfunc.h:955
const CHARSET_INFO * m_from_cs
The character set we are converting from.
Definition: item_strfunc.h:959
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3599
Item_charset_conversion(const POS &pos, Item *a, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1004
bool m_use_cached_value
Marks whether the underlying Item is constant and may be cached.
Definition: item_strfunc.h:962
String * val_str(String *) override
Definition: item_strfunc.cc:3490
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:979
longlong m_cast_length
Length argument value, if any given.
Definition: item_strfunc.h:964
String m_tmp_value
Definition: item_strfunc.h:960
Item_charset_conversion(THD *thd, Item *a, const CHARSET_INFO *cs_arg, bool cache_if_const)
Definition: item_strfunc.h:985
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:3568
Definition: item_strfunc.h:303
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:311
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:313
String * val_str(String *) override
Definition: item_strfunc.cc:661
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:651
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:309
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:307
Item_str_func super
Definition: item_strfunc.h:304
const char * func_name() const override
Definition: item_strfunc.h:322
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:316
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:708
Definition: item_strfunc.h:280
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:294
String * val_str(String *) override
Definition: item_strfunc.cc:587
const char * func_name() const override
Definition: item_strfunc.h:300
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:287
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:285
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:577
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:641
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:289
String tmp_value
Definition: item_strfunc.h:281
Item_str_func super
Definition: item_strfunc.h:282
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:291
Definition: item_strfunc.h:847
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2840
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:2849
Item_func_bin_to_uuid(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:854
Item_func_bin_to_uuid(const POS &pos, Item *arg1)
Definition: item_strfunc.h:852
const char * func_name() const override
Definition: item_strfunc.h:858
char m_text_buf[mysql::gtid::Uuid::TEXT_LENGTH+1]
Buffer to store the text result.
Definition: item_strfunc.h:849
Definition: item_strfunc.h:768
Item_func_char(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:770
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:785
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:2489
const char * func_name() const override
Definition: item_strfunc.h:784
Definition: item_strfunc.h:1134
Item_func_charset(const POS &pos, Item *a)
Definition: item_strfunc.h:1136
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1141
String * val_str(String *) override
Definition: item_strfunc.cc:3147
const char * func_name() const override
Definition: item_strfunc.h:1140
Definition: item_strfunc.h:1148
String * val_str(String *) override
Definition: item_strfunc.cc:3161
const char * func_name() const override
Definition: item_strfunc.h:1154
Item_func_collation(const POS &pos, Item *a)
Definition: item_strfunc.h:1150
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1155
Definition: item_strfunc.h:1224
String buffer
Definition: item_strfunc.h:1225
Item_func_compress(const POS &pos, Item *a)
Definition: item_strfunc.h:1228
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4065
String * val_str(String *str) override
Definition: item_strfunc.cc:4073
const char * func_name() const override
Definition: item_strfunc.h:1230
Definition: item_strfunc.h:358
const char * func_name() const override
Definition: item_strfunc.h:371
Item_func_concat_ws(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:365
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1175
String tmp_value
Definition: item_strfunc.h:359
String * val_str(String *) override
concat with separator.
Definition: item_strfunc.cc:1142
Item_func_concat_ws(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:361
Definition: item_strfunc.h:344
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:1093
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1118
Item_func_concat(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:350
Item_func_concat(Item *a, Item *b)
Definition: item_strfunc.h:349
Item_func_concat(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:347
const char * func_name() const override
Definition: item_strfunc.h:355
String tmp_value
Definition: item_strfunc.h:345
Definition: item_strfunc.h:1086
Item_func_conv_charset(const POS &pos, Item *a, const CHARSET_INFO *cs)
Definition: item_strfunc.h:1088
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3054
const char * func_name() const override
Definition: item_strfunc.h:1098
Item_func_conv_charset(THD *thd, Item *a, const CHARSET_INFO *cs, bool cache_if_const)
Definition: item_strfunc.h:1093
Definition: item_strfunc.h:875
String * val_str(String *) override
Definition: item_strfunc.cc:2983
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2976
static constexpr uint32_t CONV_MAX_LENGTH
Definition: item_strfunc.h:878
Item_func_conv(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:879
const char * func_name() const override
Definition: item_strfunc.h:881
Definition: item_strfunc.h:1615
const char * func_name() const override
Definition: item_strfunc.h:1626
Item_func_convert_cpu_id_mask(const POS &pos, Item *list)
Definition: item_strfunc.h:1617
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1620
String * val_str(String *) override
Definition: item_strfunc.cc:5051
Definition: item_strfunc.h:1669
const char * func_name() const override
Definition: item_strfunc.h:1685
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1675
enum Functype functype() const override
Definition: item_strfunc.h:1674
String * val_str(String *) override
Definition: item_strfunc.cc:5265
Item_func_convert_interval_to_user_interval(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1671
Definition: item_strfunc.h:1193
const char * func_name() const override
Definition: item_strfunc.h:1200
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1201
Item_func_crc32(const POS &pos, Item *a)
Definition: item_strfunc.h:1197
longlong val_int() override
Definition: item_strfunc.cc:4053
String value
Definition: item_strfunc.h:1194
Definition: item_strfunc.h:1273
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1287
void set_current_role(THD *thd)
Definition: item_strfunc.cc:5107
Item_func_current_role()
Definition: item_strfunc.h:1277
const char * func_name() const override
Definition: item_strfunc.h:1280
bool value_cache_set
a flag whether value_cache is set or not
Definition: item_strfunc.h:1294
Item_func_sysconst super
Definition: item_strfunc.h:1274
Item_func_current_role(const POS &pos)
Definition: item_strfunc.h:1278
String * val_str(String *) override
Definition: item_strfunc.cc:5102
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1283
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1302
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5094
Definition: item_strfunc.h:677
Item_func_user super
Definition: item_strfunc.h:678
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1985
LEX_CSTRING definer_priv_host
Definition: item_strfunc.h:690
Item_func_current_user(const POS &pos)
Definition: item_strfunc.h:699
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:703
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2062
const char * func_name() const override
Definition: item_strfunc.h:702
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:1979
LEX_CSTRING definer_priv_user
Definition: item_strfunc.h:689
String * val_str(String *) override
Definition: item_strfunc.cc:2010
Name_resolution_context * context
Definition: item_strfunc.h:685
Definition: item_strfunc.h:609
Item_func_sysconst super
Definition: item_strfunc.h:610
String * val_str(String *) override
Definition: item_strfunc.cc:1949
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:618
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:624
Item_func_database(const POS &pos)
Definition: item_strfunc.h:613
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:1941
const char * func_name() const override
Definition: item_strfunc.h:623
Definition: item_strfunc.h:721
const char * func_name() const override
Definition: item_strfunc.h:729
longlong val_int() override
Definition: item_strfunc.cc:2389
String * val_str(String *str) override
Definition: item_strfunc.cc:2402
double val_real() override
Definition: item_strfunc.cc:2377
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2359
Item_func_elt(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:723
Definition: item_strfunc.h:1062
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1064
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:1068
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1066
String * val_str(String *str) override
Definition: item_strfunc.cc:3720
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3789
const char * func_name() const override
Definition: item_strfunc.h:1073
Definition: item_strfunc.h:270
String tmp_value
Definition: item_strfunc.h:271
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:804
const char * func_name() const override
Definition: item_strfunc.h:277
String * val_str(String *) override
Definition: item_strfunc.cc:817
Item_func_from_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:274
Definition: item_strfunc.h:1341
Item_func_get_dd_column_privileges(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1343
const char * func_name() const override
Definition: item_strfunc.h:1360
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1347
enum Functype functype() const override
Definition: item_strfunc.h:1346
String * val_str(String *) override
This function prepares string with list of column privileges.
Definition: item_strfunc.cc:4349
Definition: item_strfunc.h:1365
enum Functype functype() const override
Definition: item_strfunc.h:1370
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1371
String * val_str(String *) override
This function prepares string representing create_options for table.
Definition: item_strfunc.cc:4421
Item_func_get_dd_create_options(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1367
const char * func_name() const override
Definition: item_strfunc.h:1381
Definition: item_strfunc.h:1456
const char * func_name() const override
Definition: item_strfunc.h:1472
Item_func_get_dd_index_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1458
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1462
String * val_str(String *) override
This function prepares string representing se_private_data for index.
Definition: item_strfunc.cc:4966
enum Functype functype() const override
Definition: item_strfunc.h:1461
Definition: item_strfunc.h:1631
String * val_str(String *) override
This function prepares string representing value stored at key supplied.
Definition: item_strfunc.cc:5162
enum Functype functype() const override
Definition: item_strfunc.h:1636
Item_func_get_dd_property_key_value(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1633
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1637
const char * func_name() const override
Definition: item_strfunc.h:1645
Definition: item_strfunc.h:1386
String * val_str(String *) override
This function prepares string representing options for a schema.
Definition: item_strfunc.cc:4622
const char * func_name() const override
Definition: item_strfunc.h:1402
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1392
enum Functype functype() const override
Definition: item_strfunc.h:1391
Item_func_get_dd_schema_options(const POS &pos, Item *a)
Definition: item_strfunc.h:1388
Definition: item_strfunc.h:1433
String * val_str(String *) override
This function prepares string representing se_private_data for tablespace.
Definition: item_strfunc.cc:4900
const char * func_name() const override
Definition: item_strfunc.h:1449
enum Functype functype() const override
Definition: item_strfunc.h:1438
Item_func_get_dd_tablespace_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1435
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1439
Definition: item_strfunc.h:1477
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1483
String * val_str(String *) override
Definition: item_strfunc.cc:4747
enum Functype functype() const override
Definition: item_strfunc.h:1482
Item_func_get_partition_nodegroup(const POS &pos, Item *a)
Definition: item_strfunc.h:1479
const char * func_name() const override
Definition: item_strfunc.h:1493
Definition: item_strfunc.h:886
String tmp_value
Definition: item_strfunc.h:887
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3338
Item_func_hex(const POS &pos, Item *a)
Definition: item_strfunc.h:890
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:3350
const char * func_name() const override
Definition: item_strfunc.h:891
Definition: item_strfunc.h:399
String * val_str(String *) override
Definition: item_strfunc.cc:1333
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:1385
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:402
Item_func_insert(const POS &pos, Item *org, Item *start, Item *length, Item *new_str)
Definition: item_strfunc.h:405
String tmp_value
Definition: item_strfunc.h:400
Definition: item_strfunc.h:1772
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1778
String * val_str(String *) override
This function prepares string representing EXTRA column for I_S.COLUMNS.
Definition: item_strfunc.cc:5442
const char * func_name() const override
Definition: item_strfunc.h:1788
Item_func_internal_get_dd_column_extra(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1774
enum Functype functype() const override
Definition: item_strfunc.h:1777
Definition: item_strfunc.h:1730
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
Item_func_internal_get_enabled_role_json(const POS &pos)
Definition: item_strfunc.h:1732
String * val_str(String *) override
Definition: item_strfunc.cc:5361
const char * func_name() const override
Definition: item_strfunc.h:1744
Definition: item_strfunc.h:1711
Item_func_internal_get_hostname(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1713
enum Functype functype() const override
Definition: item_strfunc.h:1716
const char * func_name() const override
Definition: item_strfunc.h:1725
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1717
String * val_str(String *) override
Definition: item_strfunc.cc:5326
Definition: item_strfunc.h:1751
const char * func_name() const override
Definition: item_strfunc.h:1765
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1757
enum Functype functype() const override
Definition: item_strfunc.h:1756
Item_func_internal_get_mandatory_roles_json(const POS &pos)
Definition: item_strfunc.h:1753
String * val_str(String *) override
Definition: item_strfunc.cc:5393
Definition: item_strfunc.h:1692
String * val_str(String *) override
Definition: item_strfunc.cc:5289
Item_func_internal_get_username(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1694
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1698
enum Functype functype() const override
Definition: item_strfunc.h:1697
const char * func_name() const override
Definition: item_strfunc.h:1706
Definition: item_strfunc.h:1522
const char * func_name() const override
Definition: item_strfunc.h:1539
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1529
String * val_str(String *) override
Definition: item_strfunc.cc:4804
Item_func_internal_tablespace_logfile_group_name(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1524
enum Functype functype() const override
Definition: item_strfunc.h:1528
Definition: item_strfunc.h:1546
Item_func_internal_tablespace_status(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1548
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1553
String * val_str(String *) override
Definition: item_strfunc.cc:4827
enum Functype functype() const override
Definition: item_strfunc.h:1552
const char * func_name() const override
Definition: item_strfunc.h:1563
Definition: item_strfunc.h:1500
enum Functype functype() const override
Definition: item_strfunc.h:1506
String * val_str(String *) override
Definition: item_strfunc.cc:4787
const char * func_name() const override
Definition: item_strfunc.h:1517
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1507
Item_func_internal_tablespace_type(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1502
Definition: item_strfunc.h:861
const char * func_name() const override
Definition: item_strfunc.h:867
longlong val_int() override
Definition: item_strfunc.cc:2889
Item_func_is_uuid(const POS &pos, Item *a)
Definition: item_strfunc.h:865
Item_bool_func super
Definition: item_strfunc.h:862
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:868
Definition: item_strfunc.h:438
Item_func_left(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:442
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1502
String tmp_value
Definition: item_strfunc.h:439
String * val_str(String *) override
Definition: item_strfunc.cc:1455
const char * func_name() const override
Definition: item_strfunc.h:445
Definition: item_strfunc.h:937
const char * func_name() const override
Definition: item_strfunc.h:941
Item_func_like_range_max(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:939
Definition: item_strfunc.h:930
const char * func_name() const override
Definition: item_strfunc.h:934
Item_func_like_range_min(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:932
Definition: item_strfunc.h:910
String max_str
Definition: item_strfunc.h:913
const bool is_min
Definition: item_strfunc.h:914
Item_func_like_range(const POS &pos, Item *a, Item *b, bool is_min_arg)
Definition: item_strfunc.h:917
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:922
String min_str
Definition: item_strfunc.h:912
String * val_str(String *) override
Definition: item_strfunc.cc:3424
Definition: item_strfunc.h:424
const char * func_name() const override
Definition: item_strfunc.h:427
Item_func_lower(const POS &pos, Item *item)
Definition: item_strfunc.h:426
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1433
Definition: item_strfunc.h:822
String * val_str(String *) override
Definition: item_strfunc.cc:2903
Item_func_lpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:826
String tmp_value
Definition: item_strfunc.h:823
String lpad_str
Definition: item_strfunc.h:823
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2773
const char * func_name() const override
Definition: item_strfunc.h:830
Definition: item_strfunc.h:569
Item_func_ltrim(const POS &pos, Item *a)
Definition: item_strfunc.h:571
Definition: item_strfunc.h:732
String * val_str(String *str) override
Definition: item_strfunc.cc:2441
Item_str_func super
Definition: item_strfunc.h:733
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2478
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2426
String tmp_str
Definition: item_strfunc.h:735
Item_func_make_set(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:738
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:2422
const char * func_name() const override
Definition: item_strfunc.h:744
Definition: item_strfunc.h:185
const char * func_name() const override
Definition: item_strfunc.h:192
Item_func_md5(const POS &pos, Item *a)
Definition: item_strfunc.h:189
String tmp_value
Definition: item_strfunc.h:186
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:235
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:192
Definition: item_strfunc.h:1076
String * val_str(String *) override
QUOTE() function returns argument string in single quotes suitable for using in a SQL statement.
Definition: item_strfunc.cc:3848
Item_func_quote(const POS &pos, Item *a)
Definition: item_strfunc.h:1080
String tmp_value
Definition: item_strfunc.h:1077
const char * func_name() const override
Definition: item_strfunc.h:1081
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3808
Definition: item_strfunc.h:325
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:339
static const ulonglong MAX_RANDOM_BYTES_BUFFER
limitation from the SSL library
Definition: item_strfunc.h:329
Item_str_func super
Definition: item_strfunc.h:326
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:715
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:732
Item_func_random_bytes(const POS &pos, Item *a)
Definition: item_strfunc.h:332
String * val_str(String *a) override
Definition: item_strfunc.cc:738
const char * func_name() const override
Definition: item_strfunc.h:338
Definition: item_strfunc.h:1650
Item_func_remove_dd_property_key(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1652
const char * func_name() const override
Definition: item_strfunc.h:1664
String * val_str(String *) override
This function removes a key value from given property string.
Definition: item_strfunc.cc:5219
enum Functype functype() const override
Definition: item_strfunc.h:1655
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1656
Definition: item_strfunc.h:792
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2539
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:2572
String tmp_value
Definition: item_strfunc.h:793
Item_func_repeat(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:796
const char * func_name() const override
Definition: item_strfunc.h:800
Definition: item_strfunc.h:386
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1312
String * val_str(String *) override
Replace all occurrences of string2 in string1 with string3.
Definition: item_strfunc.cc:1250
const char * func_name() const override
Definition: item_strfunc.h:396
String tmp_value
Definition: item_strfunc.h:387
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:389
String tmp_value2
Definition: item_strfunc.h:387
Item_func_replace(const POS &pos, Item *org, Item *find, Item *replace)
Definition: item_strfunc.h:392
Definition: item_strfunc.h:374
Item_func_reverse(Item *a)
Definition: item_strfunc.h:378
String * val_str(String *) override
Definition: item_strfunc.cc:1196
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1238
String tmp_value
Definition: item_strfunc.h:375
Item_func_reverse(const POS &pos, Item *a)
Definition: item_strfunc.h:379
const char * func_name() const override
Definition: item_strfunc.h:383
Definition: item_strfunc.h:448
Item_func_right(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:452
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1533
const char * func_name() const override
Definition: item_strfunc.h:456
String * val_str(String *) override
Definition: item_strfunc.cc:1511
String tmp_value
Definition: item_strfunc.h:449
Definition: item_strfunc.h:1305
Item_func_roles_graphml(const POS &pos)
Definition: item_strfunc.h:1310
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5145
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1335
Item_func_sysconst super
Definition: item_strfunc.h:1306
const char * func_name() const override
Definition: item_strfunc.h:1320
Item_func_roles_graphml()
Definition: item_strfunc.h:1309
bool calculate_graphml(THD *thd)
Constructs and caches the graphml string.
Definition: item_strfunc.cc:5125
String * val_str(String *) override
Definition: item_strfunc.cc:5140
bool value_cache_set
Set to true if value_cache is set.
Definition: item_strfunc.h:1338
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1315
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1322
Definition: item_strfunc.h:811
String tmp_value
Definition: item_strfunc.h:812
Item_func_rpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:815
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2675
String * val_str(String *) override
Definition: item_strfunc.cc:2701
const char * func_name() const override
Definition: item_strfunc.h:819
String rpad_str
Definition: item_strfunc.h:812
Definition: item_strfunc.h:575
Item_func_rtrim(const POS &pos, Item *a)
Definition: item_strfunc.h:577
Definition: item_strfunc.h:1103
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3121
LEX_STRING collation_string
Definition: item_strfunc.h:1106
Item_field * field_for_view_update() override
Definition: item_strfunc.h:1121
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3136
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:1127
Item_func_set_collation(const POS &pos, Item *a, const LEX_STRING &collation_string_arg)
Definition: item_strfunc.h:1109
const char * func_name() const override
Definition: item_strfunc.h:1117
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3081
enum Functype functype() const override
Definition: item_strfunc.h:1118
String * val_str(String *) override
Definition: item_strfunc.cc:3073
Item_str_func super
Definition: item_strfunc.h:1104
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3063
Definition: item_strfunc.h:203
const char * func_name() const override
Definition: item_strfunc.h:209
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:279
Item_func_sha2(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:205
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:353
Definition: item_strfunc.h:195
const char * func_name() const override
Definition: item_strfunc.h:200
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:243
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:264
Item_func_sha(const POS &pos, Item *a)
Definition: item_strfunc.h:197
Definition: item_strfunc.h:710
Item_func_soundex(const POS &pos, Item *a)
Definition: item_strfunc.h:715
String tmp_value
Definition: item_strfunc.h:711
Item_func_soundex(Item *a)
Definition: item_strfunc.h:714
String * val_str(String *) override
Definition: item_strfunc.cc:2114
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2070
const char * func_name() const override
Definition: item_strfunc.h:718
Definition: item_strfunc.h:803
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2616
String * val_str(String *) override
Definition: item_strfunc.cc:2647
const char * func_name() const override
Definition: item_strfunc.h:808
Item_func_space(const POS &pos, Item *arg1)
Definition: item_strfunc.h:805
Definition: item_strfunc.h:244
bool resolve_type(THD *thd) override
The type is always LONGTEXT, just like the digest_text columns in Performance Schema.
Definition: item_strfunc.cc:1054
const char * func_name() const override
Definition: item_strfunc.h:249
uchar * m_token_buffer
Definition: item_strfunc.h:267
Item_func_statement_digest_text(const POS &pos, Item *query_string)
Definition: item_strfunc.h:246
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:257
String * val_str(String *) override
Definition: item_strfunc.cc:1062
Definition: item_strfunc.h:222
uchar * m_token_buffer
Definition: item_strfunc.h:241
Item_func_statement_digest(const POS &pos, Item *query_string)
Definition: item_strfunc.h:224
const char * func_name() const override
Definition: item_strfunc.h:227
String * val_str_ascii(String *) override
Implementation of the STATEMENT_DIGEST() native function.
Definition: item_strfunc.cc:1024
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1009
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:228
Definition: item_strfunc.h:477
String * val_str(String *) override
Definition: item_strfunc.cc:1640
Item_func_substr_index(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:481
String tmp_value
Definition: item_strfunc.h:478
const char * func_name() const override
Definition: item_strfunc.h:485
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1630
Definition: item_strfunc.h:459
const char * func_name() const override
Definition: item_strfunc.h:474
Item_func_substr(Item *a, Item *b)
Definition: item_strfunc.h:465
Item_func_substr(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:468
String tmp_value
Definition: item_strfunc.h:462
Item_func_substr(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:466
Item_str_func super
Definition: item_strfunc.h:460
String * val_str(String *) override
Definition: item_strfunc.cc:1543
Item_func_substr(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:469
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1590
Definition: item_strfunc.h:581
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:599
Item * safe_charset_converter(THD *thd, const CHARSET_INFO *tocs) override
Definition: item_strfunc.cc:1919
virtual const Name_string fully_qualified_func_name() const =0
Item_func_sysconst(const POS &pos)
Definition: item_strfunc.h:588
Item_str_func super
Definition: item_strfunc.h:582
Item_func_sysconst()
Definition: item_strfunc.h:585
Definition: item_strfunc.h:212
const char * func_name() const override
Definition: item_strfunc.h:219
Item_func_to_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:216
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:769
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:786
String tmp_value
Definition: item_strfunc.h:213
Definition: item_strfunc.h:488
const bool m_trim_trailing
Definition: item_strfunc.h:509
bool trim_trailing() const
Definition: item_strfunc.h:541
bool trim_leading() const
Definition: item_strfunc.h:536
const char * func_name() const override
Definition: item_strfunc.h:548
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1850
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:1889
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:495
@ TRIM_BOTH_DEFAULT
Definition: item_strfunc.h:496
@ TRIM_LTRIM
Definition: item_strfunc.h:500
@ TRIM_RTRIM
Definition: item_strfunc.h:501
@ TRIM_BOTH
Definition: item_strfunc.h:497
@ TRIM_LEADING
Definition: item_strfunc.h:498
@ TRIM_TRAILING
Definition: item_strfunc.h:499
Item_func_trim(Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:524
Item_func_trim(Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:512
Item_func_trim(const POS &pos, Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:530
String tmp_value
Definition: item_strfunc.h:505
const TRIM_MODE m_trim_mode
Definition: item_strfunc.h:507
Item_func_trim(const POS &pos, Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:518
String remove
Definition: item_strfunc.h:506
const bool m_trim_leading
Definition: item_strfunc.h:508
String * val_str(String *) override
Definition: item_strfunc.cc:1755
Definition: item_strfunc.h:1234
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1239
const char * func_name() const override
Definition: item_strfunc.h:1245
String * val_str(String *str) override
Definition: item_strfunc.cc:4122
String buffer
Definition: item_strfunc.h:1235
Item_func_uncompress(const POS &pos, Item *a)
Definition: item_strfunc.h:1238
Definition: item_strfunc.h:1209
const char * func_name() const override
Definition: item_strfunc.h:1215
Item_func_uncompressed_length(const POS &pos, Item *a)
Definition: item_strfunc.h:1213
String value
Definition: item_strfunc.h:1210
longlong val_int() override
Definition: item_strfunc.cc:4024
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1216
Definition: item_strfunc.h:896
Item_func_unhex(const POS &pos, Item *a)
Definition: item_strfunc.h:900
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3380
String * val_str(String *) override
Convert given hex string to a binary string.
Definition: item_strfunc.cc:3392
String tmp_value
Definition: item_strfunc.h:897
const char * func_name() const override
Definition: item_strfunc.h:904
Definition: item_strfunc.h:431
Item_func_upper(const POS &pos, Item *item)
Definition: item_strfunc.h:433
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1444
const char * func_name() const override
Definition: item_strfunc.h:434
Definition: item_strfunc.h:629
Item_func_user(const POS &pos)
Definition: item_strfunc.h:642
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:646
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:670
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2052
String * val_str(String *) override
Definition: item_strfunc.cc:1970
Item_func_sysconst super
Definition: item_strfunc.h:630
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.h:664
Item_func_user()
Definition: item_strfunc.h:641
const char * func_name() const override
Definition: item_strfunc.h:669
bool evaluate(const char *user, const char *host)
Evaluate user name, must be called once per execution.
Definition: item_strfunc.cc:2029
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:1965
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:660
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:652
bool m_evaluated
True when function value is evaluated, set to false after each execution.
Definition: item_strfunc.h:634
Definition: item_strfunc.h:833
String * val_str(String *) override
Definition: item_strfunc.cc:2808
Item_func_uuid_to_bin(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:840
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2800
uchar m_bin_buf[mysql::gtid::Uuid::BYTE_LENGTH]
Buffer to store the binary result.
Definition: item_strfunc.h:835
Item_func_uuid_to_bin(const POS &pos, Item *arg1)
Definition: item_strfunc.h:838
const char * func_name() const override
Definition: item_strfunc.h:844
Definition: item_strfunc.h:1249
Item_func_uuid(const POS &pos)
Definition: item_strfunc.h:1254
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:1263
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:1257
String * val_str(String *) override
Definition: item_strfunc.cc:4330
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:4215
const char * func_name() const override
Definition: item_strfunc.h:1261
Item_func_uuid()
Definition: item_strfunc.h:1253
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4209
Item_str_func super
Definition: item_strfunc.h:1250
Definition: item_strfunc.h:1163
String * val_str(String *) override
Definition: item_strfunc.cc:3248
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3229
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3195
const char * func_name() const override
Definition: item_strfunc.h:1185
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3183
const uint num_codepoints
Definition: item_strfunc.h:1173
String tmp_value
Definition: item_strfunc.h:1166
Item_str_func super
Definition: item_strfunc.h:1164
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3172
Item_field * m_field_ref
Definition: item_strfunc.h:1169
const uint result_length
Definition: item_strfunc.h:1168
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:1174
const bool as_binary
Definition: item_strfunc.h:1170
uint flags
Definition: item_strfunc.h:1167
Definition: item_func.h:102
Item ** args
Array of pointers to arguments.
Definition: item_func.h:109
Functype
Definition: item_func.h:187
@ COLLATE_FUNC
Definition: item_func.h:234
@ DD_INTERNAL_FUNC
Definition: item_func.h:244
@ TYPECAST_FUNC
Definition: item_func.h:236
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:527
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:983
Definition: item_strfunc.h:1032
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3647
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1046
String tmp_value
Definition: item_strfunc.h:1035
Item_str_func super
Definition: item_strfunc.h:1033
String * val_str(String *) override
Definition: item_strfunc.cc:3655
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:1053
Item_load_file(const POS &pos, Item *a)
Definition: item_strfunc.h:1038
const char * func_name() const override
Definition: item_strfunc.h:1042
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:1043
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item.cc:10928
virtual const char * func_name() const =0
Definition: item_strfunc.h:148
Item_str_ascii_func(Item *a, Item *b)
Definition: item_strfunc.h:163
Item_str_ascii_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:174
String * val_str_ascii(String *) override=0
Item_str_ascii_func()
Definition: item_strfunc.h:152
Item_str_ascii_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:171
String ascii_buf
Definition: item_strfunc.h:149
Item_str_ascii_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:166
Item_str_ascii_func(const POS &pos, Item *a)
Definition: item_strfunc.h:159
Item_str_ascii_func(Item *a)
Definition: item_strfunc.h:156
String * val_str(String *str) override
Definition: item_strfunc.h:179
Definition: item_strfunc.h:413
String * val_str(String *) override
Definition: item_strfunc.cc:1401
Item_str_conv(const POS &pos, Item *item)
Definition: item_strfunc.h:420
String tmp_value
Definition: item_strfunc.h:417
uint multiply
Definition: item_strfunc.h:415
my_charset_conv_case converter
Definition: item_strfunc.h:416
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:149
Item_str_func(Item *a, Item *b)
Definition: item_strfunc.h:88
my_decimal * val_decimal(my_decimal *) override
Definition: item_strfunc.cc:181
String * push_packet_overflow_warning(THD *thd, const char *func)
Calls push_warning_printf for packet overflow.
Definition: item_strfunc.cc:1492
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
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:140
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:1475
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:171
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:1010
const char * func_name() const override
Definition: item_strfunc.h:1027
Item_typecast_char(THD *thd, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1015
Item_typecast_char(const POS &pos, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1020
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3454
enum Functype functype() const override
Definition: item_strfunc.h:1025
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3471
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.cc:3484
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:936
String str_value
str_values's main purpose is to cache the value in save_in_field
Definition: item.h:3531
void set_nullable(bool nullable)
Definition: item.h:3640
void set_data_type_blob(enum_field_types type, uint32 max_l)
Set the Item to be of BLOB type.
Definition: item.h:1670
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:3538
bool get_time_from_string(MYSQL_TIME *ltime)
Convert val_str() to time in MYSQL_TIME.
Definition: item.cc:1688
virtual Item_field * field_for_view_update()
Definition: item.h:3153
bool fixed
True if item has been resolved.
Definition: item.h:3628
bool null_value
True if item is null.
Definition: item.h:3665
bool unsigned_flag
Definition: item.h:3666
longlong val_int_from_string()
Definition: item.cc:522
bool get_date_from_string(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_str() to date in MYSQL_TIME.
Definition: item.cc:1601
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1587
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:1350
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:3556
double val_real_from_string()
Definition: item.cc:468
Represents a JSON container value of type "object" (ECMA), type J_OBJECT here.
Definition: json_dom.h:369
bool add_alias(const std::string &key, Json_dom *value)
Insert the value into the object.
Definition: json_dom.h:411
Definition: sql_list.h:467
Definition: sql_locale.h:37
Storage for name strings.
Definition: item.h:292
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:231
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:167
void mem_free()
Definition: sql_string.h:400
void mark_as_const()
Definition: sql_string.h:247
bool copy()
Definition: sql_string.cc:198
void set(String &str, size_t offset, size_t arg_length)
Definition: sql_string.h:302
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
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:95
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:31
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
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:64
@ MYSQL_TYPE_LONG_BLOB
Definition: field_types.h:85
static const std::string dec("DECRYPTION")
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:180
#define NAME_STRING(x)
Definition: item.h:352
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:5035
String * mysql_generate_uuid(String *str)
Generate Universal Unique Identifier (UUID).
Definition: item_strfunc.cc:4223
A better implementation of the UNIX ctype(3) library.
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:509
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:338
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:1542
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:906
#define USERNAME_LENGTH
Definition: mysql_com.h:69
#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:66
const char * host
Definition: mysqladmin.cc:65
static bool replace
Definition: mysqlimport.cc:70
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1081
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:2878
File containing constants that can be used throughout the server.
constexpr const table_map RAND_TABLE_BIT
Definition: sql_const.h:112
constexpr const table_map INNER_TABLE_BIT
Definition: sql_const.h:110
constexpr const int MAX_FIELD_NAME
Definition: sql_const.h:44
Our own string classes, used pervasively throughout the executor.
case opt name
Definition: sslopt-case.h:29
Definition: m_ctype.h:423
const char * csname
Definition: m_ctype.h:428
unsigned state
Definition: m_ctype.h:427
Struct used to pass around arguments to/from check_function_as_value_generator.
Definition: item.h:492
const char * banned_function_name
the name of the function which is not allowed
Definition: item.h:506
Value_generator_source source
Definition: item.h:504
Definition: mysql_lex_string.h:40
Definition: mysql_lex_string.h:35
char * str
Definition: mysql_lex_string.h:36
size_t length
Definition: mysql_lex_string.h:37
Definition: mysql_time.h:82
Bison "location" class.
Definition: parse_location.h:43
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:420
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