25#ifndef ITEM_STRFUNC_INCLUDED
26#define ITEM_STRFUNC_INCLUDED
54#include <openssl/evp.h>
194 const char *
func_name()
const override {
return "md5"; }
202 const char *
func_name()
const override {
return "sha"; }
211 const char *
func_name()
const override {
return "sha2"; }
221 const char *
func_name()
const override {
return "to_base64"; }
229 const char *
func_name()
const override {
return "statement_digest"; }
232 pointer_cast<Check_function_as_value_generator_parameters *>(
251 const char *
func_name()
const override {
return "statement_digest_text"; }
261 pointer_cast<Check_function_as_value_generator_parameters *>(
279 const char *
func_name()
const override {
return "from_base64"; }
285 EVP_CIPHER_CTX *
ctx{
nullptr};
286#if OPENSSL_VERSION_NUMBER < 0x10100000L
320 const char *
func_name()
const override {
return "aes_encrypt"; }
325 EVP_CIPHER_CTX *
ctx{
nullptr};
326#if OPENSSL_VERSION_NUMBER < 0x10100000L
360 const char *
func_name()
const override {
return "aes_decrypt"; }
376 const char *
func_name()
const override {
return "random_bytes"; }
393 const char *
func_name()
const override {
return "concat"; }
409 const char *
func_name()
const override {
return "concat_ws"; }
421 const char *
func_name()
const override {
return "reverse"; }
434 const char *
func_name()
const override {
return "replace"; }
448 const char *
func_name()
const override {
return "insert"; }
465 const char *
func_name()
const override {
return "lower"; }
472 const char *
func_name()
const override {
return "upper"; }
483 const char *
func_name()
const override {
return "left"; }
494 const char *
func_name()
const override {
return "right"; }
508 :
super(pos, a, b, c) {}
512 const char *
func_name()
const override {
return "substr"; }
523 const char *
func_name()
const override {
return "substring_index"; }
637 pointer_cast<Check_function_as_value_generator_parameters *>(
659 const char *
func_name()
const override {
return "database"; }
690 pointer_cast<Check_function_as_value_generator_parameters *>(
705 const char *
func_name()
const override {
return "user"; }
738 const char *
func_name()
const override {
return "current_user"; }
754 const char *
func_name()
const override {
return "soundex"; }
765 const char *
func_name()
const override {
return "elt"; }
780 const char *
func_name()
const override {
return "make_set"; }
799 const char *
func_name()
const override {
return "format"; }
823 const char *
func_name()
const override {
return "char"; }
839 const char *
func_name()
const override {
return "repeat"; }
847 const char *
func_name()
const override {
return "space"; }
858 const char *
func_name()
const override {
return "rpad"; }
869 const char *
func_name()
const override {
return "lpad"; }
883 const char *
func_name()
const override {
return "uuid_to_bin"; }
897 const char *
func_name()
const override {
return "bin_to_uuid"; }
906 const char *
func_name()
const override {
return "is_uuid"; }
921 const char *
func_name()
const override {
return "conv"; }
931 const char *
func_name()
const override {
return "hex"; }
944 const char *
func_name()
const override {
return "unhex"; }
975 const char *
func_name()
const override {
return "like_range_min"; }
982 const char *
func_name()
const override {
return "like_range_max"; }
1027 bool cache_if_const)
1068 const char *
func_name()
const override {
return "cast_as_char"; }
1083 const char *
func_name()
const override {
return "load_file"; }
1097 pointer_cast<Check_function_as_value_generator_parameters *>(
1115 const char *
func_name()
const override {
return "export_set"; }
1136 bool cache_if_const)
1140 const char *
func_name()
const override {
return "convert"; }
1160 const char *
func_name()
const override {
return "collate"; }
1183 const char *
func_name()
const override {
return "charset"; }
1197 const char *
func_name()
const override {
return "collation"; }
1218 uint num_codepoints_arg, uint flags_arg,
1219 bool as_binary_arg =
false)
1228 const char *
func_name()
const override {
return "weight_string"; }
1258 const char *
func_name()
const override {
return "uncompressed_length"; }
1274 const char *
func_name()
const override {
return "compress"; }
1284 const char *
func_name()
const override {
return "to_vector"; }
1299 const char *
func_name()
const override {
return "from_vector"; }
1315 const char *
func_name()
const override {
return "uncompress"; }
1335 pointer_cast<Check_function_as_value_generator_parameters *>(
1350 const char *
func_name()
const override {
return "current_role"; }
1390 const char *
func_name()
const override {
return "roles_graphml"; }
1430 const char *
func_name()
const override {
return "get_dd_column_privileges"; }
1451 const char *
func_name()
const override {
return "get_dd_create_options"; }
1472 const char *
func_name()
const override {
return "get_dd_schema_options"; }
1497 return "internal_get_comment_or_error";
1520 return "get_dd_tablespace_private_data";
1542 const char *
func_name()
const override {
return "get_dd_index_private_data"; }
1564 return "internal_get_partition_nodegroup";
1587 const char *
func_name()
const override {
return "internal_tablespace_type"; }
1610 return "internal_tablespace_logfile_group_name";
1634 return "internal_tablespace_status";
1657 return "internal_tablespace_row_format";
1680 const char *
func_name()
const override {
return "internal_tablespace_extra"; }
1696 const char *
func_name()
const override {
return "convert_cpu_id_mask"; }
1715 const char *
func_name()
const override {
return "get_dd_property_key_value"; }
1734 const char *
func_name()
const override {
return "remove_dd_property_key"; }
1756 return "convert_interval_to_user_interval";
1776 const char *
func_name()
const override {
return "internal_get_username"; }
1795 const char *
func_name()
const override {
return "internal_get_hostname"; }
1815 return "internal_get_enabled_role_json";
1836 return "internal_get_mandatory_roles_json";
1859 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:205
void set_repertoire(uint repertoire_arg)
Definition: item.h:231
const CHARSET_INFO * collation
Definition: item.h:187
static const uint32 max_dimensions
Definition: field.h:3948
Definition: item_cmpfunc.h:294
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_cmpfunc.h:328
The following types of conversions are considered safe:
Definition: item_strfunc.h:993
const CHARSET_INFO * m_cast_cs
The character set we are converting to.
Definition: item_strfunc.h:998
bool m_safe
Definition: item_strfunc.h:1007
bool m_charset_conversion
If true, conversion is needed so do it, else allow string copy.
Definition: item_strfunc.h:996
const CHARSET_INFO * m_from_cs
The character set we are converting from.
Definition: item_strfunc.h:1000
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3616
Item_charset_conversion(const POS &pos, Item *a, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1045
bool m_use_cached_value
Marks whether the underlying Item is constant and may be cached.
Definition: item_strfunc.h:1003
String * val_str(String *) override
Definition: item_strfunc.cc:3507
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:1020
longlong m_cast_length
Length argument value, if any given.
Definition: item_strfunc.h:1005
String m_tmp_value
Definition: item_strfunc.h:1001
Item_charset_conversion(THD *thd, Item *a, const CHARSET_INFO *cs_arg, bool cache_if_const)
Definition: item_strfunc.h:1026
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:3585
Definition: item_strfunc.h:323
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:339
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:343
String * val_str(String *) override
Definition: item_strfunc.cc:689
void destroy_op_context()
Definition: item_strfunc.cc:673
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:679
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:335
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:331
Item_str_func super
Definition: item_strfunc.h:324
EVP_CIPHER_CTX * ctx
Definition: item_strfunc.h:325
const char * func_name() const override
Definition: item_strfunc.h:360
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:348
void create_op_context()
Definition: item_strfunc.cc:665
~Item_func_aes_decrypt() override
Definition: item_strfunc.h:353
EVP_CIPHER_CTX stack_ctx
Definition: item_strfunc.h:327
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:740
Definition: item_strfunc.h:282
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:308
void create_op_context()
Definition: item_strfunc.cc:572
String * val_str(String *) override
Definition: item_strfunc.cc:596
const char * func_name() const override
Definition: item_strfunc.h:320
EVP_CIPHER_CTX * ctx
Definition: item_strfunc.h:285
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:295
EVP_CIPHER_CTX stack_ctx
Definition: item_strfunc.h:287
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:291
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:586
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:655
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:299
~Item_func_aes_encrypt() override
Definition: item_strfunc.h:313
String tmp_value
Definition: item_strfunc.h:283
Item_str_func super
Definition: item_strfunc.h:284
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:303
void destroy_op_context()
Definition: item_strfunc.cc:580
Definition: item_strfunc.h:886
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2876
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:2886
Item_func_bin_to_uuid(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:893
Item_func_bin_to_uuid(const POS &pos, Item *arg1)
Definition: item_strfunc.h:891
const char * func_name() const override
Definition: item_strfunc.h:897
char m_text_buf[mysql::gtid::Uuid::TEXT_LENGTH+1]
Buffer to store the text result.
Definition: item_strfunc.h:888
Definition: item_strfunc.h:804
Item_func_char(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:806
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:824
Item_func_char(const POS &pos, PT_item_list *list, const CHARSET_INFO *cs)
Definition: item_strfunc.h:811
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:817
String * val_str(String *) override
Definition: item_strfunc.cc:2520
const char * func_name() const override
Definition: item_strfunc.h:823
Definition: item_strfunc.h:1177
Item_func_charset(const POS &pos, Item *a)
Definition: item_strfunc.h:1179
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1184
String * val_str(String *) override
Definition: item_strfunc.cc:3184
const char * func_name() const override
Definition: item_strfunc.h:1183
Definition: item_strfunc.h:1191
String * val_str(String *) override
Definition: item_strfunc.cc:3198
const char * func_name() const override
Definition: item_strfunc.h:1197
Item_func_collation(const POS &pos, Item *a)
Definition: item_strfunc.h:1193
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1198
Definition: item_strfunc.h:1268
String buffer
Definition: item_strfunc.h:1269
Item_func_compress(const POS &pos, Item *a)
Definition: item_strfunc.h:1272
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4089
String * val_str(String *str) override
Definition: item_strfunc.cc:4097
const char * func_name() const override
Definition: item_strfunc.h:1274
Definition: item_strfunc.h:396
const char * func_name() const override
Definition: item_strfunc.h:409
Item_func_concat_ws(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:403
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1213
String tmp_value
Definition: item_strfunc.h:397
String * val_str(String *) override
concat with separator.
Definition: item_strfunc.cc:1180
Item_func_concat_ws(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:399
Definition: item_strfunc.h:382
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:1130
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1155
Item_func_concat(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:388
Item_func_concat(Item *a, Item *b)
Definition: item_strfunc.h:387
Item_func_concat(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:385
const char * func_name() const override
Definition: item_strfunc.h:393
String tmp_value
Definition: item_strfunc.h:383
Definition: item_strfunc.h:1128
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3092
Item_func_conv_charset(const POS &pos, Item *a, const CHARSET_INFO *cs)
Definition: item_strfunc.h:1130
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3098
const char * func_name() const override
Definition: item_strfunc.h:1140
Item_func_conv_charset(THD *thd, Item *a, const CHARSET_INFO *cs, bool cache_if_const)
Definition: item_strfunc.h:1135
Definition: item_strfunc.h:915
String * val_str(String *) override
Definition: item_strfunc.cc:3021
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3013
static constexpr uint32_t CONV_MAX_LENGTH
Definition: item_strfunc.h:918
Item_func_conv(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:919
const char * func_name() const override
Definition: item_strfunc.h:921
Definition: item_strfunc.h:1685
const char * func_name() const override
Definition: item_strfunc.h:1696
Item_func_convert_cpu_id_mask(const POS &pos, Item *list)
Definition: item_strfunc.h:1687
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1690
String * val_str(String *) override
Definition: item_strfunc.cc:5165
Definition: item_strfunc.h:1739
const char * func_name() const override
Definition: item_strfunc.h:1755
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1745
enum Functype functype() const override
Definition: item_strfunc.h:1744
String * val_str(String *) override
Definition: item_strfunc.cc:5379
Item_func_convert_interval_to_user_interval(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1741
Definition: item_strfunc.h:1236
const char * func_name() const override
Definition: item_strfunc.h:1243
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1244
Item_func_crc32(const POS &pos, Item *a)
Definition: item_strfunc.h:1240
longlong val_int() override
Definition: item_strfunc.cc:4077
String value
Definition: item_strfunc.h:1237
Definition: item_strfunc.h:1343
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1357
void set_current_role(THD *thd)
Definition: item_strfunc.cc:5221
Item_func_current_role()
Definition: item_strfunc.h:1347
const char * func_name() const override
Definition: item_strfunc.h:1350
bool value_cache_set
a flag whether value_cache is set or not
Definition: item_strfunc.h:1364
Item_func_sysconst super
Definition: item_strfunc.h:1344
Item_func_current_role(const POS &pos)
Definition: item_strfunc.h:1348
String * val_str(String *) override
Definition: item_strfunc.cc:5216
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1353
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1372
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5208
Definition: item_strfunc.h:713
Item_func_user super
Definition: item_strfunc.h:714
bool resolve_type(THD *) override
Overridden to copy definer priv_user and priv_host.
Definition: item_strfunc.cc:2012
Item_func_current_user(const POS &pos)
Definition: item_strfunc.h:735
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:739
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2089
const char * func_name() const override
Definition: item_strfunc.h:738
LEX_CSTRING m_definer_priv_host
Definition: item_strfunc.h:726
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:2006
LEX_CSTRING m_definer_priv_user
Copied from m_name_resolution_ctx in fix_fields if the definer Security_context is set in Name_resolu...
Definition: item_strfunc.h:725
String * val_str(String *) override
Definition: item_strfunc.cc:2037
Name_resolution_context * m_name_resolution_ctx
Used to pass a security context to the resolver functions.
Definition: item_strfunc.h:721
Definition: item_strfunc.h:645
Item_func_sysconst super
Definition: item_strfunc.h:646
String * val_str(String *) override
Definition: item_strfunc.cc:1976
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:654
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:660
Item_func_database(const POS &pos)
Definition: item_strfunc.h:649
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:1968
const char * func_name() const override
Definition: item_strfunc.h:659
Definition: item_strfunc.h:757
const char * func_name() const override
Definition: item_strfunc.h:765
longlong val_int() override
Definition: item_strfunc.cc:2419
String * val_str(String *str) override
Definition: item_strfunc.cc:2432
double val_real() override
Definition: item_strfunc.cc:2407
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2388
Item_func_elt(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:759
Definition: item_strfunc.h:1104
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1106
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:1110
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1108
String * val_str(String *str) override
Definition: item_strfunc.cc:3742
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3811
const char * func_name() const override
Definition: item_strfunc.h:1115
Definition: item_strfunc.h:272
String tmp_value
Definition: item_strfunc.h:273
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:838
const char * func_name() const override
Definition: item_strfunc.h:279
String * val_str(String *) override
Definition: item_strfunc.cc:852
Item_func_from_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:276
Definition: item_strfunc.h:1288
Item_func_from_vector(const POS &pos, Item *a)
Definition: item_strfunc.h:1295
const char * func_name() const override
Definition: item_strfunc.h:1299
String buffer
Definition: item_strfunc.h:1292
static const uint32 per_value_chars
Definition: item_strfunc.h:1289
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4189
static const uint32 max_output_bytes
Definition: item_strfunc.h:1290
String * val_str(String *str) override
Definition: item_strfunc.cc:4204
Definition: item_strfunc.h:1411
Item_func_get_dd_column_privileges(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1413
const char * func_name() const override
Definition: item_strfunc.h:1430
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1417
enum Functype functype() const override
Definition: item_strfunc.h:1416
String * val_str(String *) override
This function prepares string with list of column privileges.
Definition: item_strfunc.cc:4463
Definition: item_strfunc.h:1435
enum Functype functype() const override
Definition: item_strfunc.h:1440
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1441
String * val_str(String *) override
This function prepares string representing create_options for table.
Definition: item_strfunc.cc:4535
Item_func_get_dd_create_options(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1437
const char * func_name() const override
Definition: item_strfunc.h:1451
Definition: item_strfunc.h:1526
const char * func_name() const override
Definition: item_strfunc.h:1542
Item_func_get_dd_index_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1528
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1532
String * val_str(String *) override
This function prepares string representing se_private_data for index.
Definition: item_strfunc.cc:5080
enum Functype functype() const override
Definition: item_strfunc.h:1531
Definition: item_strfunc.h:1701
String * val_str(String *) override
This function prepares string representing value stored at key supplied.
Definition: item_strfunc.cc:5276
enum Functype functype() const override
Definition: item_strfunc.h:1706
Item_func_get_dd_property_key_value(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1703
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1707
const char * func_name() const override
Definition: item_strfunc.h:1715
Definition: item_strfunc.h:1456
String * val_str(String *) override
This function prepares string representing options for a schema.
Definition: item_strfunc.cc:4736
const char * func_name() const override
Definition: item_strfunc.h:1472
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1462
enum Functype functype() const override
Definition: item_strfunc.h:1461
Item_func_get_dd_schema_options(const POS &pos, Item *a)
Definition: item_strfunc.h:1458
Definition: item_strfunc.h:1503
String * val_str(String *) override
This function prepares string representing se_private_data for tablespace.
Definition: item_strfunc.cc:5014
const char * func_name() const override
Definition: item_strfunc.h:1519
enum Functype functype() const override
Definition: item_strfunc.h:1508
Item_func_get_dd_tablespace_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1505
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1509
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:1553
String * val_str(String *) override
Definition: item_strfunc.cc:4861
enum Functype functype() const override
Definition: item_strfunc.h:1552
Item_func_get_partition_nodegroup(const POS &pos, Item *a)
Definition: item_strfunc.h:1549
const char * func_name() const override
Definition: item_strfunc.h:1563
Definition: item_strfunc.h:926
String tmp_value
Definition: item_strfunc.h:927
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3364
Item_func_hex(const POS &pos, Item *a)
Definition: item_strfunc.h:930
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:3376
const char * func_name() const override
Definition: item_strfunc.h:931
Definition: item_strfunc.h:437
String * val_str(String *) override
Definition: item_strfunc.cc:1374
const char * func_name() const override
Definition: item_strfunc.h:448
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1426
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:440
Item_func_insert(const POS &pos, Item *org, Item *start, Item *length, Item *new_str)
Definition: item_strfunc.h:443
String tmp_value
Definition: item_strfunc.h:438
Definition: item_strfunc.h:1842
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1848
String * val_str(String *) override
This function prepares string representing EXTRA column for I_S.COLUMNS.
Definition: item_strfunc.cc:5556
const char * func_name() const override
Definition: item_strfunc.h:1858
Item_func_internal_get_dd_column_extra(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1844
enum Functype functype() const override
Definition: item_strfunc.h:1847
Definition: item_strfunc.h:1800
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1806
enum Functype functype() const override
Definition: item_strfunc.h:1805
Item_func_internal_get_enabled_role_json(const POS &pos)
Definition: item_strfunc.h:1802
String * val_str(String *) override
Definition: item_strfunc.cc:5475
const char * func_name() const override
Definition: item_strfunc.h:1814
Definition: item_strfunc.h:1781
Item_func_internal_get_hostname(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1783
enum Functype functype() const override
Definition: item_strfunc.h:1786
const char * func_name() const override
Definition: item_strfunc.h:1795
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1787
String * val_str(String *) override
Definition: item_strfunc.cc:5440
Definition: item_strfunc.h:1821
const char * func_name() const override
Definition: item_strfunc.h:1835
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1827
enum Functype functype() const override
Definition: item_strfunc.h:1826
Item_func_internal_get_mandatory_roles_json(const POS &pos)
Definition: item_strfunc.h:1823
String * val_str(String *) override
Definition: item_strfunc.cc:5507
Definition: item_strfunc.h:1762
String * val_str(String *) override
Definition: item_strfunc.cc:5403
Item_func_internal_get_username(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1764
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1768
enum Functype functype() const override
Definition: item_strfunc.h:1767
const char * func_name() const override
Definition: item_strfunc.h:1776
Definition: item_strfunc.h:1592
const char * func_name() const override
Definition: item_strfunc.h:1609
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1599
String * val_str(String *) override
Definition: item_strfunc.cc:4918
Item_func_internal_tablespace_logfile_group_name(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1594
enum Functype functype() const override
Definition: item_strfunc.h:1598
Definition: item_strfunc.h:1616
Item_func_internal_tablespace_status(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1618
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1623
String * val_str(String *) override
Definition: item_strfunc.cc:4941
enum Functype functype() const override
Definition: item_strfunc.h:1622
const char * func_name() const override
Definition: item_strfunc.h:1633
Definition: item_strfunc.h:1570
enum Functype functype() const override
Definition: item_strfunc.h:1576
String * val_str(String *) override
Definition: item_strfunc.cc:4901
const char * func_name() const override
Definition: item_strfunc.h:1587
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1577
Item_func_internal_tablespace_type(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1572
Definition: item_strfunc.h:900
const char * func_name() const override
Definition: item_strfunc.h:906
longlong val_int() override
Definition: item_strfunc.cc:2926
Item_func_is_uuid(const POS &pos, Item *a)
Definition: item_strfunc.h:904
Item_bool_func super
Definition: item_strfunc.h:901
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:907
Definition: item_strfunc.h:476
Item_func_left(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:480
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1546
String tmp_value
Definition: item_strfunc.h:477
String * val_str(String *) override
Definition: item_strfunc.cc:1499
const char * func_name() const override
Definition: item_strfunc.h:483
Definition: item_strfunc.h:978
const char * func_name() const override
Definition: item_strfunc.h:982
Item_func_like_range_max(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:980
Definition: item_strfunc.h:971
const char * func_name() const override
Definition: item_strfunc.h:975
Item_func_like_range_min(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:973
Definition: item_strfunc.h:950
String max_str
Definition: item_strfunc.h:953
const bool is_min
Definition: item_strfunc.h:954
Item_func_like_range(const POS &pos, Item *a, Item *b, bool is_min_arg)
Definition: item_strfunc.h:957
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:962
String min_str
Definition: item_strfunc.h:952
String * val_str(String *) override
Definition: item_strfunc.cc:3451
Definition: item_strfunc.h:462
const char * func_name() const override
Definition: item_strfunc.h:465
Item_func_lower(const POS &pos, Item *item)
Definition: item_strfunc.h:464
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1475
Definition: item_strfunc.h:861
String * val_str(String *) override
Definition: item_strfunc.cc:2940
Item_func_lpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:865
String tmp_value
Definition: item_strfunc.h:862
String lpad_str
Definition: item_strfunc.h:862
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2807
const char * func_name() const override
Definition: item_strfunc.h:869
Definition: item_strfunc.h:607
Item_func_ltrim(const POS &pos, Item *a)
Definition: item_strfunc.h:609
Definition: item_strfunc.h:768
String * val_str(String *str) override
Definition: item_strfunc.cc:2472
Item_str_func super
Definition: item_strfunc.h:769
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2509
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2456
String tmp_str
Definition: item_strfunc.h:771
Item_func_make_set(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:774
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:2452
const char * func_name() const override
Definition: item_strfunc.h:780
Definition: item_strfunc.h:187
const char * func_name() const override
Definition: item_strfunc.h:194
Item_func_md5(const POS &pos, Item *a)
Definition: item_strfunc.h:191
String tmp_value
Definition: item_strfunc.h:188
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:236
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:193
Definition: item_strfunc.h:1118
String * val_str(String *) override
QUOTE() function returns argument string in single quotes suitable for using in a SQL statement.
Definition: item_strfunc.cc:3872
Item_func_quote(const POS &pos, Item *a)
Definition: item_strfunc.h:1122
String tmp_value
Definition: item_strfunc.h:1119
const char * func_name() const override
Definition: item_strfunc.h:1123
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3831
Definition: item_strfunc.h:363
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:377
static const ulonglong MAX_RANDOM_BYTES_BUFFER
limitation from the SSL library
Definition: item_strfunc.h:367
Item_str_func super
Definition: item_strfunc.h:364
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:748
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:765
Item_func_random_bytes(const POS &pos, Item *a)
Definition: item_strfunc.h:370
String * val_str(String *a) override
Definition: item_strfunc.cc:772
const char * func_name() const override
Definition: item_strfunc.h:376
Definition: item_strfunc.h:1720
Item_func_remove_dd_property_key(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1722
const char * func_name() const override
Definition: item_strfunc.h:1734
String * val_str(String *) override
This function removes a key value from given property string.
Definition: item_strfunc.cc:5333
enum Functype functype() 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:1726
Definition: item_strfunc.h:831
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2570
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:2604
String tmp_value
Definition: item_strfunc.h:832
Item_func_repeat(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:835
const char * func_name() const override
Definition: item_strfunc.h:839
Definition: item_strfunc.h:424
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1352
String * val_str(String *) override
Replace all occurrences of string2 in string1 with string3.
Definition: item_strfunc.cc:1290
const char * func_name() const override
Definition: item_strfunc.h:434
String tmp_value
Definition: item_strfunc.h:425
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:427
String tmp_value2
Definition: item_strfunc.h:425
Item_func_replace(const POS &pos, Item *org, Item *find, Item *replace)
Definition: item_strfunc.h:430
Definition: item_strfunc.h:412
Item_func_reverse(Item *a)
Definition: item_strfunc.h:416
String * val_str(String *) override
Definition: item_strfunc.cc:1235
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1277
String tmp_value
Definition: item_strfunc.h:413
Item_func_reverse(const POS &pos, Item *a)
Definition: item_strfunc.h:417
const char * func_name() const override
Definition: item_strfunc.h:421
Definition: item_strfunc.h:486
Item_func_right(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:490
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1578
const char * func_name() const override
Definition: item_strfunc.h:494
String * val_str(String *) override
Definition: item_strfunc.cc:1556
String tmp_value
Definition: item_strfunc.h:487
Definition: item_strfunc.h:1375
Item_func_roles_graphml(const POS &pos)
Definition: item_strfunc.h:1380
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5259
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1405
Item_func_sysconst super
Definition: item_strfunc.h:1376
const char * func_name() const override
Definition: item_strfunc.h:1390
Item_func_roles_graphml()
Definition: item_strfunc.h:1379
bool calculate_graphml(THD *thd)
Constructs and caches the graphml string.
Definition: item_strfunc.cc:5239
String * val_str(String *) override
Definition: item_strfunc.cc:5254
bool value_cache_set
Set to true if value_cache is set.
Definition: item_strfunc.h:1408
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1385
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1392
Definition: item_strfunc.h:850
String tmp_value
Definition: item_strfunc.h:851
Item_func_rpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:854
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2708
String * val_str(String *) override
Definition: item_strfunc.cc:2735
const char * func_name() const override
Definition: item_strfunc.h:858
String rpad_str
Definition: item_strfunc.h:851
Definition: item_strfunc.h:613
Item_func_rtrim(const POS &pos, Item *a)
Definition: item_strfunc.h:615
Definition: item_strfunc.h:1146
LEX_STRING collation_string
Definition: item_strfunc.h:1149
Item_field * field_for_view_update() override
Definition: item_strfunc.h:1164
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3166
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3173
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:1170
Item_func_set_collation(const POS &pos, Item *a, const LEX_STRING &collation_string_arg)
Definition: item_strfunc.h:1152
const char * func_name() const override
Definition: item_strfunc.h:1160
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3125
enum Functype functype() const override
Definition: item_strfunc.h:1161
String * val_str(String *) override
Definition: item_strfunc.cc:3117
Item_str_func super
Definition: item_strfunc.h:1147
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3107
Definition: item_strfunc.h:205
const char * func_name() const override
Definition: item_strfunc.h:211
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:280
Item_func_sha2(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:207
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:354
Definition: item_strfunc.h:197
const char * func_name() const override
Definition: item_strfunc.h:202
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:244
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:265
Item_func_sha(const POS &pos, Item *a)
Definition: item_strfunc.h:199
Definition: item_strfunc.h:746
Item_func_soundex(const POS &pos, Item *a)
Definition: item_strfunc.h:751
String tmp_value
Definition: item_strfunc.h:747
Item_func_soundex(Item *a)
Definition: item_strfunc.h:750
String * val_str(String *) override
Definition: item_strfunc.cc:2142
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2097
const char * func_name() const override
Definition: item_strfunc.h:754
Definition: item_strfunc.h:842
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2648
String * val_str(String *) override
Definition: item_strfunc.cc:2680
const char * func_name() const override
Definition: item_strfunc.h:847
Item_func_space(const POS &pos, Item *arg1)
Definition: item_strfunc.h:844
Definition: item_strfunc.h:246
bool resolve_type(THD *thd) override
The type is always LONGTEXT, just like the digest_text columns in Performance Schema.
Definition: item_strfunc.cc:1090
const char * func_name() const override
Definition: item_strfunc.h:251
uchar * m_token_buffer
Definition: item_strfunc.h:269
Item_func_statement_digest_text(const POS &pos, Item *query_string)
Definition: item_strfunc.h:248
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:259
String * val_str(String *) override
Definition: item_strfunc.cc:1099
Definition: item_strfunc.h:224
uchar * m_token_buffer
Definition: item_strfunc.h:243
Item_func_statement_digest(const POS &pos, Item *query_string)
Definition: item_strfunc.h:226
const char * func_name() const override
Definition: item_strfunc.h:229
String * val_str_ascii(String *) override
Implementation of the STATEMENT_DIGEST() native function.
Definition: item_strfunc.cc:1060
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1044
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:230
Definition: item_strfunc.h:515
String * val_str(String *) override
Definition: item_strfunc.cc:1688
Item_func_substr_index(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:519
String tmp_value
Definition: item_strfunc.h:516
const char * func_name() const override
Definition: item_strfunc.h:523
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1677
Definition: item_strfunc.h:497
const char * func_name() const override
Definition: item_strfunc.h:512
Item_func_substr(Item *a, Item *b)
Definition: item_strfunc.h:503
Item_func_substr(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:506
String tmp_value
Definition: item_strfunc.h:500
Item_func_substr(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:504
Item_str_func super
Definition: item_strfunc.h:498
String * val_str(String *) override
Definition: item_strfunc.cc:1589
Item_func_substr(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:507
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1636
Definition: item_strfunc.h:619
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:635
virtual const Name_string fully_qualified_func_name() const =0
Item_func_sysconst(const POS &pos)
Definition: item_strfunc.h:626
Item_str_func super
Definition: item_strfunc.h:620
Item_func_sysconst()
Definition: item_strfunc.h:623
Definition: item_strfunc.h:214
const char * func_name() const override
Definition: item_strfunc.h:221
Item_func_to_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:218
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:803
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:820
String tmp_value
Definition: item_strfunc.h:215
Definition: item_strfunc.h:1278
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4146
String * val_str(String *str) override
Definition: item_strfunc.cc:4161
String buffer
Definition: item_strfunc.h:1279
const char * func_name() const override
Definition: item_strfunc.h:1284
Item_func_to_vector(const POS &pos, Item *a)
Definition: item_strfunc.h:1282
Definition: item_strfunc.h:526
const bool m_trim_trailing
Definition: item_strfunc.h:547
bool trim_trailing() const
Definition: item_strfunc.h:579
bool trim_leading() const
Definition: item_strfunc.h:574
const char * func_name() const override
Definition: item_strfunc.h:586
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1898
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:1938
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:533
@ TRIM_BOTH_DEFAULT
Definition: item_strfunc.h:534
@ TRIM_LTRIM
Definition: item_strfunc.h:538
@ TRIM_RTRIM
Definition: item_strfunc.h:539
@ TRIM_BOTH
Definition: item_strfunc.h:535
@ TRIM_LEADING
Definition: item_strfunc.h:536
@ TRIM_TRAILING
Definition: item_strfunc.h:537
Item_func_trim(Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:562
Item_func_trim(Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:550
Item_func_trim(const POS &pos, Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:568
String tmp_value
Definition: item_strfunc.h:543
const TRIM_MODE m_trim_mode
Definition: item_strfunc.h:545
Item_func_trim(const POS &pos, Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:556
String remove
Definition: item_strfunc.h:544
const bool m_trim_leading
Definition: item_strfunc.h:546
String * val_str(String *) override
Definition: item_strfunc.cc:1803
Definition: item_strfunc.h:1303
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1308
const char * func_name() const override
Definition: item_strfunc.h:1315
String * val_str(String *str) override
Definition: item_strfunc.cc:4236
String buffer
Definition: item_strfunc.h:1304
Item_func_uncompress(const POS &pos, Item *a)
Definition: item_strfunc.h:1307
Definition: item_strfunc.h:1252
const char * func_name() const override
Definition: item_strfunc.h:1258
Item_func_uncompressed_length(const POS &pos, Item *a)
Definition: item_strfunc.h:1256
String value
Definition: item_strfunc.h:1253
longlong val_int() override
Definition: item_strfunc.cc:4048
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1259
Definition: item_strfunc.h:936
Item_func_unhex(const POS &pos, Item *a)
Definition: item_strfunc.h:940
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3406
String * val_str(String *) override
Convert given hex string to a binary string.
Definition: item_strfunc.cc:3419
String tmp_value
Definition: item_strfunc.h:937
const char * func_name() const override
Definition: item_strfunc.h:944
Definition: item_strfunc.h:469
Item_func_upper(const POS &pos, Item *item)
Definition: item_strfunc.h:471
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1487
const char * func_name() const override
Definition: item_strfunc.h:472
Definition: item_strfunc.h:665
Item_func_user(const POS &pos)
Definition: item_strfunc.h:678
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:682
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:706
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2079
String * val_str(String *) override
Definition: item_strfunc.cc:1997
Item_func_sysconst super
Definition: item_strfunc.h:666
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.h:700
Item_func_user()
Definition: item_strfunc.h:677
const char * func_name() const override
Definition: item_strfunc.h:705
bool evaluate(const char *user, const char *host)
Evaluate user name, must be called once per execution.
Definition: item_strfunc.cc:2056
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:1992
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:696
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:688
bool m_evaluated
True when function value is evaluated, set to false after each execution.
Definition: item_strfunc.h:670
Definition: item_strfunc.h:872
String * val_str(String *) override
Definition: item_strfunc.cc:2844
Item_func_uuid_to_bin(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:879
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2835
uchar m_bin_buf[mysql::gtid::Uuid::BYTE_LENGTH]
Buffer to store the binary result.
Definition: item_strfunc.h:874
Item_func_uuid_to_bin(const POS &pos, Item *arg1)
Definition: item_strfunc.h:877
const char * func_name() const override
Definition: item_strfunc.h:883
Definition: item_strfunc.h:1319
Item_func_uuid(const POS &pos)
Definition: item_strfunc.h:1324
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:1333
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:1327
String * val_str(String *) override
Definition: item_strfunc.cc:4444
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:4329
const char * func_name() const override
Definition: item_strfunc.h:1331
Item_func_uuid()
Definition: item_strfunc.h:1323
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4322
Item_str_func super
Definition: item_strfunc.h:1320
Definition: item_strfunc.h:1206
String * val_str(String *) override
Definition: item_strfunc.cc:3276
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3232
const char * func_name() const override
Definition: item_strfunc.h:1228
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3220
const uint num_codepoints
Definition: item_strfunc.h:1216
String tmp_value
Definition: item_strfunc.h:1209
Item_str_func super
Definition: item_strfunc.h:1207
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3209
Item_field * m_field_ref
Definition: item_strfunc.h:1212
const uint result_length
Definition: item_strfunc.h:1211
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3267
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:1217
const bool as_binary
Definition: item_strfunc.h:1213
uint flags
Definition: item_strfunc.h:1210
Definition: item_func.h:100
Item ** args
Array of pointers to arguments.
Definition: item_func.h:107
bool reject_vector_args()
Definition: item_func.cc:1596
Functype
Definition: item_func.h:209
@ COLLATE_FUNC
Definition: item_func.h:256
@ DD_INTERNAL_FUNC
Definition: item_func.h:266
@ TYPECAST_FUNC
Definition: item_func.h:258
virtual const char * func_name() const =0
bool param_type_is_default(THD *thd, uint start, uint end, uint step, enum_field_types def)
For arguments of this Item_func ("args" array), in range [start, start+step, start+2*step,...
Definition: item_func.cc:528
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:186
Definition: item_func.h:1020
Definition: item_strfunc.h:1073
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3669
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1087
String tmp_value
Definition: item_strfunc.h:1076
Item_str_func super
Definition: item_strfunc.h:1074
String * val_str(String *) override
Definition: item_strfunc.cc:3677
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:1095
Item_load_file(const POS &pos, Item *a)
Definition: item_strfunc.h:1079
const char * func_name() const override
Definition: item_strfunc.h:1083
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:1084
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item.cc:10772
Definition: item_strfunc.h:150
Item_str_ascii_func(Item *a, Item *b)
Definition: item_strfunc.h:165
Item_str_ascii_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:176
String * val_str_ascii(String *) override=0
Item_str_ascii_func()
Definition: item_strfunc.h:154
Item_str_ascii_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:173
String ascii_buf
Definition: item_strfunc.h:151
Item_str_ascii_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:168
Item_str_ascii_func(const POS &pos, Item *a)
Definition: item_strfunc.h:161
Item_str_ascii_func(Item *a)
Definition: item_strfunc.h:158
String * val_str(String *str) override
Definition: item_strfunc.h:181
Definition: item_strfunc.h:451
String * val_str(String *) override
Definition: item_strfunc.cc:1443
Item_str_conv(const POS &pos, Item *item)
Definition: item_strfunc.h:458
String tmp_value
Definition: item_strfunc.h:455
uint multiply
Definition: item_strfunc.h:453
my_charset_conv_case converter
Definition: item_strfunc.h:454
Definition: item_strfunc.h:78
Item_str_func()
Definition: item_strfunc.h:82
String * val_str_from_val_str_ascii(String *str, String *str2)
Definition: item_strfunc.cc:150
Item_str_func(Item *a, Item *b)
Definition: item_strfunc.h:90
my_decimal * val_decimal(my_decimal *) override
Definition: item_strfunc.cc:182
String * push_packet_overflow_warning(THD *thd, const char *func)
Calls push_warning_printf for packet overflow.
Definition: item_strfunc.cc:1536
Item_str_func(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:114
Item_str_func(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:112
Item_str_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:96
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:142
bool get_date(MYSQL_TIME *ltime, my_time_flags_t fuzzydate) override
Definition: item_strfunc.h:120
Item_func super
Definition: item_strfunc.h:79
bool get_time(MYSQL_TIME *ltime) override
Definition: item_strfunc.h:123
Item_str_func(Item *a)
Definition: item_strfunc.h:86
Item_str_func(Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:99
void left_right_max_length(THD *thd)
Definition: item_strfunc.cc:1519
enum Item_result result_type() const override
Definition: item_strfunc.h:126
Item_str_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:94
longlong val_int() override
Definition: item_strfunc.h:117
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:109
Item_str_func(const POS &pos, Item *a)
Definition: item_strfunc.h:88
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:129
double val_real() override
Definition: item_strfunc.h:118
Item_str_func(const POS &pos)
Definition: item_strfunc.h:84
Item_str_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:92
Item_str_func(Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:104
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:172
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:107
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:101
Definition: item_strfunc.h:1051
const char * func_name() const override
Definition: item_strfunc.h:1068
Item_typecast_char(THD *thd, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1056
Item_typecast_char(const POS &pos, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1061
enum Functype functype() const override
Definition: item_strfunc.h:1066
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3488
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.cc:3501
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3481
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:930
String str_value
str_values's main purpose is to cache the value in save_in_field
Definition: item.h:3576
void set_nullable(bool nullable)
Definition: item.h:3688
void set_data_type_blob(enum_field_types type, uint32 max_l)
Set the Item to be of BLOB type.
Definition: item.h:1683
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:3583
bool get_time_from_string(MYSQL_TIME *ltime)
Convert val_str() to time in MYSQL_TIME.
Definition: item.cc:1648
virtual Item_field * field_for_view_update()
Definition: item.h:3185
bool fixed
True if item has been resolved.
Definition: item.h:3676
bool null_value
True if item is null.
Definition: item.h:3713
bool unsigned_flag
Definition: item.h:3714
longlong val_int_from_string()
Definition: item.cc:526
bool get_date_from_string(MYSQL_TIME *ltime, my_time_flags_t flags)
Convert val_str() to date in MYSQL_TIME.
Definition: item.cc:1561
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1600
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:1410
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:3601
double val_real_from_string()
Definition: item.cc:472
Represents a JSON container value of type "object" (ECMA), type J_OBJECT here.
Definition: json_dom.h:367
bool add_alias(std::string_view key, Json_dom *value)
Insert the value into the object.
Definition: json_dom.h:409
Definition: sql_list.h:494
Definition: sql_locale.h:37
Storage for name strings.
Definition: item.h:298
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:96
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:31
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:64
@ MYSQL_TYPE_LONG_BLOB
Definition: field_types.h:86
static const std::string dec("DECRYPTION")
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:180
#define NAME_STRING(x)
Definition: item.h:358
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:5149
String * mysql_generate_uuid(String *str)
Generate Universal Unique Identifier (UUID).
Definition: item_strfunc.cc:4337
A better implementation of the UNIX ctype(3) library.
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:500
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:336
static constexpr uint32_t MY_CS_UNICODE
Definition: m_ctype.h:130
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_utf8mb4_0900_bin
Definition: ctype-uca.cc:11481
static constexpr uint32_t MY_REPERTOIRE_ASCII
Definition: m_ctype.h:152
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1562
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:907
#define USERNAME_LENGTH
Definition: mysql_com.h:69
#define NAME_CHAR_LEN
Field/table name length.
Definition: mysql_com.h:60
#define USERNAME_CHAR_LENGTH
Definition: mysql_com.h:64
Time declarations shared between the server and client API: you should not add anything to this heade...
char * user
Definition: mysqladmin.cc:67
const char * host
Definition: mysqladmin.cc:66
static bool replace
Definition: mysqlimport.cc:70
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1117
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:2880
type_conversion_status
Status when storing a value in a field or converting from one datatype to another.
Definition: field.h:204
@ VGS_CHECK_CONSTRAINT
Definition: field.h:478
@ VGS_GENERATED_COLUMN
Definition: field.h:476
@ DERIVATION_COERCIBLE
Definition: field.h:184
@ DERIVATION_SYSCONST
Definition: field.h:185
File containing constants that can be used throughout the server.
constexpr const table_map RAND_TABLE_BIT
Definition: sql_const.h:113
constexpr const table_map INNER_TABLE_BIT
Definition: sql_const.h:111
Our own string classes, used pervasively throughout the executor.
case opt name
Definition: sslopt-case.h:29
Definition: m_ctype.h:421
const char * csname
Definition: m_ctype.h:426
unsigned state
Definition: m_ctype.h:425
Struct used to pass around arguments to/from check_function_as_value_generator.
Definition: item.h:488
const char * banned_function_name
the name of the function which is not allowed
Definition: item.h:502
Value_generator_source source
Definition: item.h:500
Definition: mysql_lex_string.h: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
Instances of Name_resolution_context store the information necessary for name resolution of Items and...
Definition: item.h:415
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:421
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