24#ifndef ITEM_STRFUNC_INCLUDED
25#define ITEM_STRFUNC_INCLUDED
191 const char *
func_name()
const override {
return "md5"; }
199 const char *
func_name()
const override {
return "sha"; }
208 const char *
func_name()
const override {
return "sha2"; }
218 const char *
func_name()
const override {
return "to_base64"; }
226 const char *
func_name()
const override {
return "statement_digest"; }
229 pointer_cast<Check_function_as_value_generator_parameters *>(
248 const char *
func_name()
const override {
return "statement_digest_text"; }
258 pointer_cast<Check_function_as_value_generator_parameters *>(
276 const char *
func_name()
const override {
return "from_base64"; }
299 const char *
func_name()
const override {
return "aes_encrypt"; }
321 const char *
func_name()
const override {
return "aes_decrypt"; }
337 const char *
func_name()
const override {
return "random_bytes"; }
354 const char *
func_name()
const override {
return "concat"; }
370 const char *
func_name()
const override {
return "concat_ws"; }
382 const char *
func_name()
const override {
return "reverse"; }
395 const char *
func_name()
const override {
return "replace"; }
409 const char *
func_name()
const override {
return "insert"; }
426 const char *
func_name()
const override {
return "lower"; }
433 const char *
func_name()
const override {
return "upper"; }
444 const char *
func_name()
const override {
return "left"; }
455 const char *
func_name()
const override {
return "right"; }
469 :
super(pos, a, b, c) {}
473 const char *
func_name()
const override {
return "substr"; }
484 const char *
func_name()
const override {
return "substring_index"; }
600 pointer_cast<Check_function_as_value_generator_parameters *>(
622 const char *
func_name()
const override {
return "database"; }
653 pointer_cast<Check_function_as_value_generator_parameters *>(
668 const char *
func_name()
const override {
return "user"; }
688 const char *
func_name()
const override {
return "current_user"; }
704 const char *
func_name()
const override {
return "soundex"; }
715 const char *
func_name()
const override {
return "elt"; }
741 const char *
func_name()
const override {
return "make_set"; }
771 const char *
func_name()
const override {
return "format"; }
792 const char *
func_name()
const override {
return "char"; }
808 const char *
func_name()
const override {
return "repeat"; }
816 const char *
func_name()
const override {
return "space"; }
827 const char *
func_name()
const override {
return "rpad"; }
838 const char *
func_name()
const override {
return "lpad"; }
852 const char *
func_name()
const override {
return "uuid_to_bin"; }
866 const char *
func_name()
const override {
return "bin_to_uuid"; }
875 const char *
func_name()
const override {
return "is_uuid"; }
889 const char *
func_name()
const override {
return "conv"; }
899 const char *
func_name()
const override {
return "hex"; }
912 const char *
func_name()
const override {
return "unhex"; }
942 const char *
func_name()
const override {
return "like_range_min"; }
949 const char *
func_name()
const override {
return "like_range_max"; }
1034 bool eq(
const Item *item,
bool binary_cmp)
const override;
1035 const char *
func_name()
const override {
return "cast_as_char"; }
1050 const char *
func_name()
const override {
return "load_file"; }
1063 pointer_cast<Check_function_as_value_generator_parameters *>(
1081 const char *
func_name()
const override {
return "export_set"; }
1102 bool cache_if_const)
1106 const char *
func_name()
const override {
return "convert"; }
1124 bool eq(
const Item *item,
bool binary_cmp)
const override;
1125 const char *
func_name()
const override {
return "collate"; }
1148 const char *
func_name()
const override {
return "charset"; }
1162 const char *
func_name()
const override {
return "collation"; }
1183 uint num_codepoints_arg, uint flags_arg,
1184 bool as_binary_arg =
false)
1193 const char *
func_name()
const override {
return "weight_string"; }
1194 bool eq(
const Item *item,
bool binary_cmp)
const override;
1223 const char *
func_name()
const override {
return "uncompressed_length"; }
1238 const char *
func_name()
const override {
return "compress"; }
1253 const char *
func_name()
const override {
return "uncompress"; }
1273 pointer_cast<Check_function_as_value_generator_parameters *>(
1288 const char *
func_name()
const override {
return "current_role"; }
1328 const char *
func_name()
const override {
return "roles_graphml"; }
1368 const char *
func_name()
const override {
return "get_dd_column_privileges"; }
1389 const char *
func_name()
const override {
return "get_dd_create_options"; }
1410 const char *
func_name()
const override {
return "get_dd_schema_options"; }
1435 return "internal_get_comment_or_error";
1458 return "get_dd_tablespace_private_data";
1480 const char *
func_name()
const override {
return "get_dd_index_private_data"; }
1502 return "internal_get_partition_nodegroup";
1525 const char *
func_name()
const override {
return "internal_tablespace_type"; }
1548 return "internal_tablespace_logfile_group_name";
1572 return "internal_tablespace_status";
1595 return "internal_tablespace_row_format";
1618 const char *
func_name()
const override {
return "internal_tablespace_extra"; }
1634 const char *
func_name()
const override {
return "convert_cpu_id_mask"; }
1653 const char *
func_name()
const override {
return "get_dd_property_key_value"; }
1672 const char *
func_name()
const override {
return "remove_dd_property_key"; }
1694 return "convert_interval_to_user_interval";
1714 const char *
func_name()
const override {
return "internal_get_username"; }
1733 const char *
func_name()
const override {
return "internal_get_hostname"; }
1753 return "internal_get_enabled_role_json";
1774 return "internal_get_mandatory_roles_json";
1797 return "internal_get_dd_column_extra";
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:250
void set(const DTCollation &dt)
Definition: item.h:196
void set_repertoire(uint repertoire_arg)
Definition: item.h:222
const CHARSET_INFO * collation
Definition: item.h:178
Definition: item_cmpfunc.h:292
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_cmpfunc.h:326
The following types of conversions are considered safe:
Definition: item_strfunc.h:960
const CHARSET_INFO * m_cast_cs
The character set we are converting to.
Definition: item_strfunc.h:965
bool m_safe
Definition: item_strfunc.h:974
bool m_charset_conversion
If true, conversion is needed so do it, else allow string copy.
Definition: item_strfunc.h:963
const CHARSET_INFO * m_from_cs
The character set we are converting from.
Definition: item_strfunc.h:967
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3590
Item_charset_conversion(const POS &pos, Item *a, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1012
bool m_use_cached_value
Marks whether the underlying Item is constant and may be cached.
Definition: item_strfunc.h:970
String * val_str(String *) override
Definition: item_strfunc.cc:3481
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:987
longlong m_cast_length
Length argument value, if any given.
Definition: item_strfunc.h:972
String m_tmp_value
Definition: item_strfunc.h:968
Item_charset_conversion(THD *thd, Item *a, const CHARSET_INFO *cs_arg, bool cache_if_const)
Definition: item_strfunc.h:993
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:3559
Definition: item_strfunc.h:302
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:310
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:312
String * val_str(String *) override
Definition: item_strfunc.cc:659
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:649
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:308
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:306
Item_str_func super
Definition: item_strfunc.h:303
const char * func_name() const override
Definition: item_strfunc.h:321
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:315
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:706
Definition: item_strfunc.h:279
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:293
String * val_str(String *) override
Definition: item_strfunc.cc:585
const char * func_name() const override
Definition: item_strfunc.h:299
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:286
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:284
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:575
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:639
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:288
String tmp_value
Definition: item_strfunc.h:280
Item_str_func super
Definition: item_strfunc.h:281
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:290
Definition: item_strfunc.h:855
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2831
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:2840
Item_func_bin_to_uuid(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:862
Item_func_bin_to_uuid(const POS &pos, Item *arg1)
Definition: item_strfunc.h:860
const char * func_name() const override
Definition: item_strfunc.h:866
char m_text_buf[mysql::gtid::Uuid::TEXT_LENGTH+1]
Buffer to store the text result.
Definition: item_strfunc.h:857
Definition: item_strfunc.h:776
Item_func_char(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:778
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:793
Item_func_char(const POS &pos, PT_item_list *list, const CHARSET_INFO *cs)
Definition: item_strfunc.h:782
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:787
String * val_str(String *) override
Definition: item_strfunc.cc:2480
const char * func_name() const override
Definition: item_strfunc.h:792
Definition: item_strfunc.h:1142
Item_func_charset(const POS &pos, Item *a)
Definition: item_strfunc.h:1144
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1149
String * val_str(String *) override
Definition: item_strfunc.cc:3138
const char * func_name() const override
Definition: item_strfunc.h:1148
Definition: item_strfunc.h:1156
String * val_str(String *) override
Definition: item_strfunc.cc:3152
const char * func_name() const override
Definition: item_strfunc.h:1162
Item_func_collation(const POS &pos, Item *a)
Definition: item_strfunc.h:1158
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1163
Definition: item_strfunc.h:1232
String buffer
Definition: item_strfunc.h:1233
Item_func_compress(const POS &pos, Item *a)
Definition: item_strfunc.h:1236
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4056
String * val_str(String *str) override
Definition: item_strfunc.cc:4064
const char * func_name() const override
Definition: item_strfunc.h:1238
Definition: item_strfunc.h:357
const char * func_name() const override
Definition: item_strfunc.h:370
Item_func_concat_ws(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:364
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1170
String tmp_value
Definition: item_strfunc.h:358
String * val_str(String *) override
concat with separator.
Definition: item_strfunc.cc:1137
Item_func_concat_ws(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:360
Definition: item_strfunc.h:343
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:1091
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1113
Item_func_concat(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:349
Item_func_concat(Item *a, Item *b)
Definition: item_strfunc.h:348
Item_func_concat(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:346
const char * func_name() const override
Definition: item_strfunc.h:354
String tmp_value
Definition: item_strfunc.h:344
Definition: item_strfunc.h:1094
Item_func_conv_charset(const POS &pos, Item *a, const CHARSET_INFO *cs)
Definition: item_strfunc.h:1096
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3045
const char * func_name() const override
Definition: item_strfunc.h:1106
Item_func_conv_charset(THD *thd, Item *a, const CHARSET_INFO *cs, bool cache_if_const)
Definition: item_strfunc.h:1101
Definition: item_strfunc.h:883
String * val_str(String *) override
Definition: item_strfunc.cc:2974
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2967
static constexpr uint32_t CONV_MAX_LENGTH
Definition: item_strfunc.h:886
Item_func_conv(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:887
const char * func_name() const override
Definition: item_strfunc.h:889
Definition: item_strfunc.h:1623
const char * func_name() const override
Definition: item_strfunc.h:1634
Item_func_convert_cpu_id_mask(const POS &pos, Item *list)
Definition: item_strfunc.h:1625
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1628
String * val_str(String *) override
Definition: item_strfunc.cc:5042
Definition: item_strfunc.h:1677
const char * func_name() const override
Definition: item_strfunc.h:1693
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1683
enum Functype functype() const override
Definition: item_strfunc.h:1682
String * val_str(String *) override
Definition: item_strfunc.cc:5256
Item_func_convert_interval_to_user_interval(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1679
Definition: item_strfunc.h:1201
const char * func_name() const override
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.h:1209
Item_func_crc32(const POS &pos, Item *a)
Definition: item_strfunc.h:1205
longlong val_int() override
Definition: item_strfunc.cc:4044
String value
Definition: item_strfunc.h:1202
Definition: item_strfunc.h:1281
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1295
void set_current_role(THD *thd)
Definition: item_strfunc.cc:5098
Item_func_current_role()
Definition: item_strfunc.h:1285
const char * func_name() const override
Definition: item_strfunc.h:1288
bool value_cache_set
a flag whether value_cache is set or not
Definition: item_strfunc.h:1302
Item_func_sysconst super
Definition: item_strfunc.h:1282
Item_func_current_role(const POS &pos)
Definition: item_strfunc.h:1286
String * val_str(String *) override
Definition: item_strfunc.cc:5093
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1291
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1310
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5085
Definition: item_strfunc.h:676
Item_func_user super
Definition: item_strfunc.h:677
Item_func_current_user(const POS &pos)
Definition: item_strfunc.h:685
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:689
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2023
const char * func_name() const override
Definition: item_strfunc.h:688
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:1968
String * val_str(String *) override
Definition: item_strfunc.cc:1974
Name_resolution_context * context
Definition: item_strfunc.h:679
Definition: item_strfunc.h:608
Item_func_sysconst super
Definition: item_strfunc.h:609
String * val_str(String *) override
Definition: item_strfunc.cc:1938
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:617
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:623
Item_func_database(const POS &pos)
Definition: item_strfunc.h:612
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:1930
const char * func_name() const override
Definition: item_strfunc.h:622
Definition: item_strfunc.h:707
const char * func_name() const override
Definition: item_strfunc.h:715
longlong val_int() override
Definition: item_strfunc.cc:2350
String * val_str(String *str) override
Definition: item_strfunc.cc:2363
double val_real() override
Definition: item_strfunc.cc:2338
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2320
Item_func_elt(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:709
Definition: item_strfunc.h:1070
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1072
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:1076
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1074
String * val_str(String *str) override
Definition: item_strfunc.cc:3711
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3780
const char * func_name() const override
Definition: item_strfunc.h:1081
Definition: item_strfunc.h:269
String tmp_value
Definition: item_strfunc.h:270
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:802
const char * func_name() const override
Definition: item_strfunc.h:276
String * val_str(String *) override
Definition: item_strfunc.cc:815
Item_func_from_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:273
Definition: item_strfunc.h:1349
Item_func_get_dd_column_privileges(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1351
const char * func_name() const override
Definition: item_strfunc.h:1368
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1355
enum Functype functype() const override
Definition: item_strfunc.h:1354
String * val_str(String *) override
This function prepares string with list of column privileges.
Definition: item_strfunc.cc:4340
Definition: item_strfunc.h:1373
enum Functype functype() const override
Definition: item_strfunc.h:1378
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1379
String * val_str(String *) override
This function prepares string representing create_options for table.
Definition: item_strfunc.cc:4412
Item_func_get_dd_create_options(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1375
const char * func_name() const override
Definition: item_strfunc.h:1389
Definition: item_strfunc.h:1464
const char * func_name() const override
Definition: item_strfunc.h:1480
Item_func_get_dd_index_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1466
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1470
String * val_str(String *) override
This function prepares string representing se_private_data for index.
Definition: item_strfunc.cc:4957
enum Functype functype() const override
Definition: item_strfunc.h:1469
Definition: item_strfunc.h:1639
String * val_str(String *) override
This function prepares string representing value stored at key supplied.
Definition: item_strfunc.cc:5153
enum Functype functype() const override
Definition: item_strfunc.h:1644
Item_func_get_dd_property_key_value(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1641
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1645
const char * func_name() const override
Definition: item_strfunc.h:1653
Definition: item_strfunc.h:1394
String * val_str(String *) override
This function prepares string representing options for a schema.
Definition: item_strfunc.cc:4613
const char * func_name() const override
Definition: item_strfunc.h:1410
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1400
enum Functype functype() const override
Definition: item_strfunc.h:1399
Item_func_get_dd_schema_options(const POS &pos, Item *a)
Definition: item_strfunc.h:1396
Definition: item_strfunc.h:1441
String * val_str(String *) override
This function prepares string representing se_private_data for tablespace.
Definition: item_strfunc.cc:4891
const char * func_name() const override
Definition: item_strfunc.h:1457
enum Functype functype() const override
Definition: item_strfunc.h:1446
Item_func_get_dd_tablespace_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1443
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1447
Definition: item_strfunc.h:1485
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1491
String * val_str(String *) override
Definition: item_strfunc.cc:4738
enum Functype functype() const override
Definition: item_strfunc.h:1490
Item_func_get_partition_nodegroup(const POS &pos, Item *a)
Definition: item_strfunc.h:1487
const char * func_name() const override
Definition: item_strfunc.h:1501
Definition: item_strfunc.h:894
String tmp_value
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:3329
Item_func_hex(const POS &pos, Item *a)
Definition: item_strfunc.h:898
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:3341
const char * func_name() const override
Definition: item_strfunc.h:899
Definition: item_strfunc.h:398
String * val_str(String *) override
Definition: item_strfunc.cc:1322
const char * func_name() const override
Definition: item_strfunc.h:409
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1374
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:401
Item_func_insert(const POS &pos, Item *org, Item *start, Item *length, Item *new_str)
Definition: item_strfunc.h:404
String tmp_value
Definition: item_strfunc.h:399
Definition: item_strfunc.h:1780
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1786
String * val_str(String *) override
This function prepares string representing EXTRA column for I_S.COLUMNS.
Definition: item_strfunc.cc:5433
const char * func_name() const override
Definition: item_strfunc.h:1796
Item_func_internal_get_dd_column_extra(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1782
enum Functype functype() const override
Definition: item_strfunc.h:1785
Definition: item_strfunc.h:1738
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1744
enum Functype functype() const override
Definition: item_strfunc.h:1743
Item_func_internal_get_enabled_role_json(const POS &pos)
Definition: item_strfunc.h:1740
String * val_str(String *) override
Definition: item_strfunc.cc:5352
const char * func_name() const override
Definition: item_strfunc.h:1752
Definition: item_strfunc.h:1719
Item_func_internal_get_hostname(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1721
enum Functype functype() const override
Definition: item_strfunc.h:1724
const char * func_name() const override
Definition: item_strfunc.h:1733
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1725
String * val_str(String *) override
Definition: item_strfunc.cc:5317
Definition: item_strfunc.h:1759
const char * func_name() const override
Definition: item_strfunc.h:1773
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1765
enum Functype functype() const override
Definition: item_strfunc.h:1764
Item_func_internal_get_mandatory_roles_json(const POS &pos)
Definition: item_strfunc.h:1761
String * val_str(String *) override
Definition: item_strfunc.cc:5384
Definition: item_strfunc.h:1700
String * val_str(String *) override
Definition: item_strfunc.cc:5280
Item_func_internal_get_username(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1702
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1706
enum Functype functype() const override
Definition: item_strfunc.h:1705
const char * func_name() const override
Definition: item_strfunc.h:1714
Definition: item_strfunc.h:1530
const char * func_name() const override
Definition: item_strfunc.h:1547
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1537
String * val_str(String *) override
Definition: item_strfunc.cc:4795
Item_func_internal_tablespace_logfile_group_name(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1532
enum Functype functype() const override
Definition: item_strfunc.h:1536
Definition: item_strfunc.h:1554
Item_func_internal_tablespace_status(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1556
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1561
String * val_str(String *) override
Definition: item_strfunc.cc:4818
enum Functype functype() const override
Definition: item_strfunc.h:1560
const char * func_name() const override
Definition: item_strfunc.h:1571
Definition: item_strfunc.h:1508
enum Functype functype() const override
Definition: item_strfunc.h:1514
String * val_str(String *) override
Definition: item_strfunc.cc:4778
const char * func_name() const override
Definition: item_strfunc.h:1525
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1515
Item_func_internal_tablespace_type(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1510
Definition: item_strfunc.h:869
const char * func_name() const override
Definition: item_strfunc.h:875
longlong val_int() override
Definition: item_strfunc.cc:2880
Item_func_is_uuid(const POS &pos, Item *a)
Definition: item_strfunc.h:873
Item_bool_func super
Definition: item_strfunc.h:870
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:876
Definition: item_strfunc.h:437
Item_func_left(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:441
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1491
String tmp_value
Definition: item_strfunc.h:438
String * val_str(String *) override
Definition: item_strfunc.cc:1444
const char * func_name() const override
Definition: item_strfunc.h:444
Definition: item_strfunc.h:945
const char * func_name() const override
Definition: item_strfunc.h:949
Item_func_like_range_max(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:947
Definition: item_strfunc.h:938
const char * func_name() const override
Definition: item_strfunc.h:942
Item_func_like_range_min(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:940
Definition: item_strfunc.h:918
String max_str
Definition: item_strfunc.h:921
const bool is_min
Definition: item_strfunc.h:922
Item_func_like_range(const POS &pos, Item *a, Item *b, bool is_min_arg)
Definition: item_strfunc.h:925
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:930
String min_str
Definition: item_strfunc.h:920
String * val_str(String *) override
Definition: item_strfunc.cc:3415
Definition: item_strfunc.h:423
const char * func_name() const override
Definition: item_strfunc.h:426
Item_func_lower(const POS &pos, Item *item)
Definition: item_strfunc.h:425
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1422
Definition: item_strfunc.h:830
String * val_str(String *) override
Definition: item_strfunc.cc:2894
Item_func_lpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:834
String tmp_value
Definition: item_strfunc.h:831
String lpad_str
Definition: item_strfunc.h:831
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2764
const char * func_name() const override
Definition: item_strfunc.h:838
Definition: item_strfunc.h:568
Item_func_ltrim(const POS &pos, Item *a)
Definition: item_strfunc.h:570
Definition: item_strfunc.h:718
Item_func_make_set(const POS &pos, Item *a, PT_item_list *opt_list)
Definition: item_strfunc.h:725
Item * get_item()
Definition: item_strfunc.h:755
String * val_str(String *str) override
Definition: item_strfunc.cc:2425
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:743
Item_str_func super
Definition: item_strfunc.h:719
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2469
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2399
String tmp_str
Definition: item_strfunc.h:722
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:2393
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2383
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.h:730
const char * func_name() const override
Definition: item_strfunc.h:741
void update_used_tables() override
Updates used tables, not null tables information and accumulates properties up the item tree,...
Definition: item_strfunc.cc:2417
Item * item
Definition: item_strfunc.h:721
Item * transform(Item_transformer transformer, uchar *arg) override
Transform an Item_func object with a transformer callback function.
Definition: item_strfunc.cc:2462
Definition: item_strfunc.h:184
const char * func_name() const override
Definition: item_strfunc.h:191
Item_func_md5(const POS &pos, Item *a)
Definition: item_strfunc.h:188
String tmp_value
Definition: item_strfunc.h:185
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:233
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:190
Definition: item_strfunc.h:1084
String * val_str(String *) override
QUOTE() function returns argument string in single quotes suitable for using in a SQL statement.
Definition: item_strfunc.cc:3839
Item_func_quote(const POS &pos, Item *a)
Definition: item_strfunc.h:1088
String tmp_value
Definition: item_strfunc.h:1085
const char * func_name() const override
Definition: item_strfunc.h:1089
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3799
Definition: item_strfunc.h:324
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:338
static const ulonglong MAX_RANDOM_BYTES_BUFFER
limitation from the SSL library
Definition: item_strfunc.h:328
Item_str_func super
Definition: item_strfunc.h:325
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:713
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:730
Item_func_random_bytes(const POS &pos, Item *a)
Definition: item_strfunc.h:331
String * val_str(String *a) override
Definition: item_strfunc.cc:736
const char * func_name() const override
Definition: item_strfunc.h:337
Definition: item_strfunc.h:1658
Item_func_remove_dd_property_key(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1660
const char * func_name() const override
Definition: item_strfunc.h:1672
String * val_str(String *) override
This function removes a key value from given property string.
Definition: item_strfunc.cc:5210
enum Functype functype() const override
Definition: item_strfunc.h:1663
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1664
Definition: item_strfunc.h:800
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2530
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:2563
String tmp_value
Definition: item_strfunc.h:801
Item_func_repeat(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:804
const char * func_name() const override
Definition: item_strfunc.h:808
Definition: item_strfunc.h:385
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1301
String * val_str(String *) override
Replace all occurrences of string2 in string1 with string3.
Definition: item_strfunc.cc:1239
const char * func_name() const override
Definition: item_strfunc.h:395
String tmp_value
Definition: item_strfunc.h:386
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:388
String tmp_value2
Definition: item_strfunc.h:386
Item_func_replace(const POS &pos, Item *org, Item *find, Item *replace)
Definition: item_strfunc.h:391
Definition: item_strfunc.h:373
Item_func_reverse(Item *a)
Definition: item_strfunc.h:377
String * val_str(String *) override
Definition: item_strfunc.cc:1191
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1227
String tmp_value
Definition: item_strfunc.h:374
Item_func_reverse(const POS &pos, Item *a)
Definition: item_strfunc.h:378
const char * func_name() const override
Definition: item_strfunc.h:382
Definition: item_strfunc.h:447
Item_func_right(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:451
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1522
const char * func_name() const override
Definition: item_strfunc.h:455
String * val_str(String *) override
Definition: item_strfunc.cc:1500
String tmp_value
Definition: item_strfunc.h:448
Definition: item_strfunc.h:1313
Item_func_roles_graphml(const POS &pos)
Definition: item_strfunc.h:1318
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5136
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1343
Item_func_sysconst super
Definition: item_strfunc.h:1314
const char * func_name() const override
Definition: item_strfunc.h:1328
Item_func_roles_graphml()
Definition: item_strfunc.h:1317
bool calculate_graphml(THD *thd)
Constructs and caches the graphml string.
Definition: item_strfunc.cc:5116
String * val_str(String *) override
Definition: item_strfunc.cc:5131
bool value_cache_set
Set to true if value_cache is set.
Definition: item_strfunc.h:1346
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1323
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1330
Definition: item_strfunc.h:819
String tmp_value
Definition: item_strfunc.h:820
Item_func_rpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
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:2666
String * val_str(String *) override
Definition: item_strfunc.cc:2692
const char * func_name() const override
Definition: item_strfunc.h:827
String rpad_str
Definition: item_strfunc.h:820
Definition: item_strfunc.h:574
Item_func_rtrim(const POS &pos, Item *a)
Definition: item_strfunc.h:576
Definition: item_strfunc.h:1111
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3112
LEX_STRING collation_string
Definition: item_strfunc.h:1114
Item_field * field_for_view_update() override
Definition: item_strfunc.h:1129
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3127
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:1135
Item_func_set_collation(const POS &pos, Item *a, const LEX_STRING &collation_string_arg)
Definition: item_strfunc.h:1117
const char * func_name() const override
Definition: item_strfunc.h:1125
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3072
enum Functype functype() const override
Definition: item_strfunc.h:1126
String * val_str(String *) override
Definition: item_strfunc.cc:3064
Item_str_func super
Definition: item_strfunc.h:1112
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3054
Definition: item_strfunc.h:202
const char * func_name() const override
Definition: item_strfunc.h:208
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:277
Item_func_sha2(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:204
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:351
Definition: item_strfunc.h:194
const char * func_name() const override
Definition: item_strfunc.h:199
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:241
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:262
Item_func_sha(const POS &pos, Item *a)
Definition: item_strfunc.h:196
Definition: item_strfunc.h:696
Item_func_soundex(const POS &pos, Item *a)
Definition: item_strfunc.h:701
String tmp_value
Definition: item_strfunc.h:697
Item_func_soundex(Item *a)
Definition: item_strfunc.h:700
String * val_str(String *) override
Definition: item_strfunc.cc:2075
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2031
const char * func_name() const override
Definition: item_strfunc.h:704
Definition: item_strfunc.h:811
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2607
String * val_str(String *) override
Definition: item_strfunc.cc:2638
const char * func_name() const override
Definition: item_strfunc.h:816
Item_func_space(const POS &pos, Item *arg1)
Definition: item_strfunc.h:813
Definition: item_strfunc.h:243
bool resolve_type(THD *thd) override
The type is always LONGTEXT, just like the digest_text columns in Performance Schema.
Definition: item_strfunc.cc:1052
const char * func_name() const override
Definition: item_strfunc.h:248
uchar * m_token_buffer
Definition: item_strfunc.h:266
Item_func_statement_digest_text(const POS &pos, Item *query_string)
Definition: item_strfunc.h:245
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:256
String * val_str(String *) override
Definition: item_strfunc.cc:1060
Definition: item_strfunc.h:221
uchar * m_token_buffer
Definition: item_strfunc.h:240
Item_func_statement_digest(const POS &pos, Item *query_string)
Definition: item_strfunc.h:223
const char * func_name() const override
Definition: item_strfunc.h:226
String * val_str_ascii(String *) override
Implementation of the STATEMENT_DIGEST() native function.
Definition: item_strfunc.cc:1022
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1007
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:227
Definition: item_strfunc.h:476
String * val_str(String *) override
Definition: item_strfunc.cc:1629
Item_func_substr_index(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:480
String tmp_value
Definition: item_strfunc.h:477
const char * func_name() const override
Definition: item_strfunc.h:484
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1619
Definition: item_strfunc.h:458
const char * func_name() const override
Definition: item_strfunc.h:473
Item_func_substr(Item *a, Item *b)
Definition: item_strfunc.h:464
Item_func_substr(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:467
String tmp_value
Definition: item_strfunc.h:461
Item_func_substr(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:465
Item_str_func super
Definition: item_strfunc.h:459
String * val_str(String *) override
Definition: item_strfunc.cc:1532
Item_func_substr(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:468
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1579
Definition: item_strfunc.h:580
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:598
Item * safe_charset_converter(THD *thd, const CHARSET_INFO *tocs) override
Definition: item_strfunc.cc:1908
virtual const Name_string fully_qualified_func_name() const =0
Item_func_sysconst(const POS &pos)
Definition: item_strfunc.h:587
Item_str_func super
Definition: item_strfunc.h:581
Item_func_sysconst()
Definition: item_strfunc.h:584
Definition: item_strfunc.h:211
const char * func_name() const override
Definition: item_strfunc.h:218
Item_func_to_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:215
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:767
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:784
String tmp_value
Definition: item_strfunc.h:212
Definition: item_strfunc.h:487
const bool m_trim_trailing
Definition: item_strfunc.h:508
bool trim_trailing() const
Definition: item_strfunc.h:540
bool trim_leading() const
Definition: item_strfunc.h:535
const char * func_name() const override
Definition: item_strfunc.h:547
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1839
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:1878
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:494
@ TRIM_BOTH_DEFAULT
Definition: item_strfunc.h:495
@ TRIM_LTRIM
Definition: item_strfunc.h:499
@ TRIM_RTRIM
Definition: item_strfunc.h:500
@ TRIM_BOTH
Definition: item_strfunc.h:496
@ TRIM_LEADING
Definition: item_strfunc.h:497
@ TRIM_TRAILING
Definition: item_strfunc.h:498
Item_func_trim(Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:523
Item_func_trim(Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:511
Item_func_trim(const POS &pos, Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:529
String tmp_value
Definition: item_strfunc.h:504
const TRIM_MODE m_trim_mode
Definition: item_strfunc.h:506
Item_func_trim(const POS &pos, Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:517
String remove
Definition: item_strfunc.h:505
const bool m_trim_leading
Definition: item_strfunc.h:507
String * val_str(String *) override
Definition: item_strfunc.cc:1744
Definition: item_strfunc.h:1242
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1247
const char * func_name() const override
Definition: item_strfunc.h:1253
String * val_str(String *str) override
Definition: item_strfunc.cc:4113
String buffer
Definition: item_strfunc.h:1243
Item_func_uncompress(const POS &pos, Item *a)
Definition: item_strfunc.h:1246
Definition: item_strfunc.h:1217
const char * func_name() const override
Definition: item_strfunc.h:1223
Item_func_uncompressed_length(const POS &pos, Item *a)
Definition: item_strfunc.h:1221
String value
Definition: item_strfunc.h:1218
longlong val_int() override
Definition: item_strfunc.cc:4015
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1224
Definition: item_strfunc.h:904
Item_func_unhex(const POS &pos, Item *a)
Definition: item_strfunc.h:908
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3371
String * val_str(String *) override
Convert given hex string to a binary string.
Definition: item_strfunc.cc:3383
String tmp_value
Definition: item_strfunc.h:905
const char * func_name() const override
Definition: item_strfunc.h:912
Definition: item_strfunc.h:430
Item_func_upper(const POS &pos, Item *item)
Definition: item_strfunc.h:432
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1433
const char * func_name() const override
Definition: item_strfunc.h:433
Definition: item_strfunc.h:628
Item_func_user(const POS &pos)
Definition: item_strfunc.h:641
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:645
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:669
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2013
String * val_str(String *) override
Definition: item_strfunc.cc:1959
Item_func_sysconst super
Definition: item_strfunc.h:629
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.h:663
Item_func_user()
Definition: item_strfunc.h:640
const char * func_name() const override
Definition: item_strfunc.h:668
bool evaluate(const char *user, const char *host)
Evaluate user name, must be called once per execution.
Definition: item_strfunc.cc:1990
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:1954
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:659
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:651
bool m_evaluated
True when function value is evaluated, set to false after each execution.
Definition: item_strfunc.h:633
Definition: item_strfunc.h:841
String * val_str(String *) override
Definition: item_strfunc.cc:2799
Item_func_uuid_to_bin(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:848
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2791
uchar m_bin_buf[mysql::gtid::Uuid::BYTE_LENGTH]
Buffer to store the binary result.
Definition: item_strfunc.h:843
Item_func_uuid_to_bin(const POS &pos, Item *arg1)
Definition: item_strfunc.h:846
const char * func_name() const override
Definition: item_strfunc.h:852
Definition: item_strfunc.h:1257
Item_func_uuid(const POS &pos)
Definition: item_strfunc.h:1262
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:1271
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:1265
String * val_str(String *) override
Definition: item_strfunc.cc:4321
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:4206
const char * func_name() const override
Definition: item_strfunc.h:1269
Item_func_uuid()
Definition: item_strfunc.h:1261
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4200
Item_str_func super
Definition: item_strfunc.h:1258
Definition: item_strfunc.h:1171
String * val_str(String *) override
Definition: item_strfunc.cc:3239
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3220
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3186
const char * func_name() const override
Definition: item_strfunc.h:1193
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3174
const uint num_codepoints
Definition: item_strfunc.h:1181
String tmp_value
Definition: item_strfunc.h:1174
Item_str_func super
Definition: item_strfunc.h:1172
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3163
Item_field * m_field_ref
Definition: item_strfunc.h:1177
const uint result_length
Definition: item_strfunc.h:1176
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:1182
const bool as_binary
Definition: item_strfunc.h:1178
uint flags
Definition: item_strfunc.h:1175
Definition: item_func.h:100
Item ** args
Array of pointers to arguments.
Definition: item_func.h:107
Functype
Definition: item_func.h:183
@ COLLATE_FUNC
Definition: item_func.h:229
@ DD_INTERNAL_FUNC
Definition: item_func.h:239
@ TYPECAST_FUNC
Definition: item_func.h:231
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:526
bool fix_fields(THD *, Item **ref) override
Definition: item_func.cc:404
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:130
bool null_on_null
Affects how to determine that NULL argument implies a NULL function return.
Definition: item_func.h:162
Definition: item_func.h:942
Definition: item_strfunc.h:1040
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3638
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1054
String tmp_value
Definition: item_strfunc.h:1043
Item_str_func super
Definition: item_strfunc.h:1041
String * val_str(String *) override
Definition: item_strfunc.cc:3646
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:1061
Item_load_file(const POS &pos, Item *a)
Definition: item_strfunc.h:1046
const char * func_name() const override
Definition: item_strfunc.h:1050
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:1051
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item.cc:10812
virtual const char * func_name() const =0
Definition: item_strfunc.h:147
Item_str_ascii_func(Item *a, Item *b)
Definition: item_strfunc.h:162
Item_str_ascii_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:173
String * val_str_ascii(String *) override=0
Item_str_ascii_func()
Definition: item_strfunc.h:151
Item_str_ascii_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:170
String ascii_buf
Definition: item_strfunc.h:148
Item_str_ascii_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:165
Item_str_ascii_func(const POS &pos, Item *a)
Definition: item_strfunc.h:158
Item_str_ascii_func(Item *a)
Definition: item_strfunc.h:155
String * val_str(String *str) override
Definition: item_strfunc.h:178
Definition: item_strfunc.h:412
String * val_str(String *) override
Definition: item_strfunc.cc:1390
Item_str_conv(const POS &pos, Item *item)
Definition: item_strfunc.h:419
String tmp_value
Definition: item_strfunc.h:416
uint multiply
Definition: item_strfunc.h:414
my_charset_conv_case converter
Definition: item_strfunc.h:415
Definition: item_strfunc.h:75
Item_str_func()
Definition: item_strfunc.h:79
String * val_str_from_val_str_ascii(String *str, String *str2)
Definition: item_strfunc.cc:147
Item_str_func(Item *a, Item *b)
Definition: item_strfunc.h:87
my_decimal * val_decimal(my_decimal *) override
Definition: item_strfunc.cc:179
String * push_packet_overflow_warning(THD *thd, const char *func)
Calls push_warning_printf for packet overflow.
Definition: item_strfunc.cc:1481
Item_str_func(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:111
Item_str_func(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:109
Item_str_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:93
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:139
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_strfunc.h:117
Item_func super
Definition: item_strfunc.h:76
bool get_time(MYSQL_TIME *ltime) override
Definition: item_strfunc.h:120
Item_str_func(Item *a)
Definition: item_strfunc.h:83
Item_str_func(Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:96
void left_right_max_length(THD *thd)
Definition: item_strfunc.cc:1464
enum Item_result result_type() const override
Definition: item_strfunc.h:123
Item_str_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:91
longlong val_int() override
Definition: item_strfunc.h:114
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:106
Item_str_func(const POS &pos, Item *a)
Definition: item_strfunc.h:85
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:126
double val_real() override
Definition: item_strfunc.h:115
Item_str_func(const POS &pos)
Definition: item_strfunc.h:81
Item_str_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:89
Item_str_func(Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:101
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:169
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:104
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:98
Definition: item_strfunc.h:1018
const char * func_name() const override
Definition: item_strfunc.h:1035
Item_typecast_char(THD *thd, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1023
Item_typecast_char(const POS &pos, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1028
bool eq(const Item *item, bool binary_cmp) const override
Definition: item_strfunc.cc:3445
enum Functype functype() const override
Definition: item_strfunc.h:1033
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3462
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.cc:3475
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:932
String str_value
str_values's main purpose is to cache the value in save_in_field
Definition: item.h:3496
void set_nullable(bool nullable)
Definition: item.h:3605
void set_data_type_blob(enum_field_types type, uint32 max_l)
Set the Item to be of BLOB type.
Definition: item.h:1669
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:3503
bool is_nullable() const
Definition: item.h:3604
bool get_time_from_string(MYSQL_TIME *ltime)
Convert val_str() to time in MYSQL_TIME.
Definition: item.cc:1685
virtual Item_field * field_for_view_update()
Definition: item.h:3141
virtual bool fix_fields(THD *, Item **)
Definition: item.cc:5048
bool fixed
True if item has been resolved.
Definition: item.h:3593
bool null_value
True if item is null.
Definition: item.h:3630
virtual bool check_cols(uint c)
Definition: item.cc:1355
bool unsigned_flag
Definition: item.h:3631
longlong val_int_from_string()
Definition: item.cc:518
bool get_date_from_string(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_str() to date in MYSQL_TIME.
Definition: item.cc:1598
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:2601
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1586
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:1347
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:3521
double val_real_from_string()
Definition: item.cc:464
Represents a JSON container value of type "object" (ECMA), type J_OBJECT here.
Definition: json_dom.h:374
bool add_alias(const std::string &key, Json_dom *value)
Insert the value into the object.
Definition: json_dom.h:416
Definition: sql_list.h:433
Definition: sql_locale.h:36
Storage for name strings.
Definition: item.h:289
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:104
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:229
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:166
void mem_free()
Definition: sql_string.h:377
void mark_as_const()
Definition: sql_string.h:246
bool copy()
Definition: sql_string.cc:197
void set(String &str, size_t offset, size_t arg_length)
Definition: sql_string.h:279
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:35
A (partial) implementation of std::deque allocating its blocks on a MEM_ROOT.
Definition: mem_root_deque.h:109
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:30
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:63
@ MYSQL_TYPE_LONG_BLOB
Definition: field_types.h:84
static const std::string dec("DECRYPTION")
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:176
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:349
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:5026
String * mysql_generate_uuid(String *str)
Generate Universal Unique Identifier (UUID).
Definition: item_strfunc.cc:4214
A better implementation of the UNIX ctype(3) library.
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:508
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:337
static constexpr uint32_t MY_CS_UNICODE
Definition: m_ctype.h:129
static constexpr uint32_t MY_REPERTOIRE_ASCII
Definition: m_ctype.h:151
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1558
Common definition used by mysys, performance schema and server & client.
static constexpr int HOSTNAME_LENGTH
Definition: my_hostname.h:42
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
unsigned char uchar
Definition: my_inttypes.h:51
long long int longlong
Definition: my_inttypes.h:54
uint32_t uint32
Definition: my_inttypes.h:66
uint64_t table_map
Definition: my_table_map.h:29
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:93
Common definition between mysql server & client.
#define MAX_BLOB_WIDTH
Default width for blob in bytes.
Definition: mysql_com.h:909
#define USERNAME_LENGTH
Definition: mysql_com.h:68
#define USERNAME_CHAR_LENGTH
Definition: mysql_com.h:63
Time declarations shared between the server and client API: you should not add anything to this heade...
char * user
Definition: mysqladmin.cc:64
const char * host
Definition: mysqladmin.cc:63
static bool replace
Definition: mysqlimport.cc:69
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1085
Definition: commit_order_queue.h:33
const byte * find(const Pages *pages, const page_id_t &page_id) noexcept
Find a doublewrite copy of a page.
Definition: buf0dblwr.cc:3578
PT & ref(PT *tp)
Definition: tablespace_impl.cc:358
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:75
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2877
type_conversion_status
Status when storing a value in a field or converting from one datatype to another.
Definition: field.h:203
@ VGS_CHECK_CONSTRAINT
Definition: field.h:477
@ VGS_GENERATED_COLUMN
Definition: field.h:475
@ DERIVATION_COERCIBLE
Definition: field.h:183
@ DERIVATION_SYSCONST
Definition: field.h:184
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:287
bool(Item::*)(unsigned char *) Item_processor
Processor type for {Item,Query_block[_UNIT],Table_function}walk.
Definition: sql_const.h:305
constexpr const table_map INNER_TABLE_BIT
Definition: sql_const.h:109
constexpr const int MAX_FIELD_NAME
Definition: sql_const.h:43
Our own string classes, used pervasively throughout the executor.
case opt name
Definition: sslopt-case.h:32
Definition: m_ctype.h:422
const char * csname
Definition: m_ctype.h:427
unsigned state
Definition: m_ctype.h:426
Struct used to pass around arguments to/from check_function_as_value_generator.
Definition: item.h:489
const char * banned_function_name
the name of the function which is not allowed
Definition: item.h:503
Value_generator_source source
Definition: item.h:501
Definition: mysql_lex_string.h:34
char * str
Definition: mysql_lex_string.h:35
size_t length
Definition: mysql_lex_string.h:36
Definition: mysql_time.h:81
Bison "location" class.
Definition: parse_location.h:42
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:418
static const size_t TEXT_LENGTH
The number of bytes in the textual representation of a Uuid.
Definition: uuid.h:162
static const size_t BYTE_LENGTH
The number of bytes in the data of a Uuid.
Definition: uuid.h:139
Item_result
Type of the user defined function return slot and arguments.
Definition: udf_registration_types.h:38
@ STRING_RESULT
not valid for UDFs
Definition: udf_registration_types.h:40