25#ifndef ITEM_STRFUNC_INCLUDED
26#define ITEM_STRFUNC_INCLUDED
55#include <openssl/evp.h>
195 const char *
func_name()
const override {
return "sha2"; }
206 const char *
func_name()
const override {
return "to_base64"; }
214 const char *
func_name()
const override {
return "statement_digest"; }
217 pointer_cast<Check_function_as_value_generator_parameters *>(
236 const char *
func_name()
const override {
return "statement_digest_text"; }
246 pointer_cast<Check_function_as_value_generator_parameters *>(
264 const char *
func_name()
const override {
return "from_base64"; }
270 EVP_CIPHER_CTX *
ctx{
nullptr};
302 const char *
func_name()
const override {
return "aes_encrypt"; }
307 EVP_CIPHER_CTX *
ctx{
nullptr};
339 const char *
func_name()
const override {
return "aes_decrypt"; }
355 const char *
func_name()
const override {
return "random_bytes"; }
372 const char *
func_name()
const override {
return "concat"; }
388 const char *
func_name()
const override {
return "concat_ws"; }
405 const char *
func_name()
const override {
return "etag"; }
408 pointer_cast<Check_function_as_value_generator_parameters *>(
425 const char *
func_name()
const override {
return "reverse"; }
438 const char *
func_name()
const override {
return "replace"; }
452 const char *
func_name()
const override {
return "insert"; }
469 const char *
func_name()
const override {
return "lower"; }
476 const char *
func_name()
const override {
return "upper"; }
487 const char *
func_name()
const override {
return "left"; }
498 const char *
func_name()
const override {
return "right"; }
512 :
super(pos, a, b, c) {}
516 const char *
func_name()
const override {
return "substr"; }
527 const char *
func_name()
const override {
return "substring_index"; }
641 pointer_cast<Check_function_as_value_generator_parameters *>(
663 const char *
func_name()
const override {
return "database"; }
694 pointer_cast<Check_function_as_value_generator_parameters *>(
709 const char *
func_name()
const override {
return "user"; }
742 const char *
func_name()
const override {
return "current_user"; }
758 const char *
func_name()
const override {
return "soundex"; }
769 const char *
func_name()
const override {
return "elt"; }
784 const char *
func_name()
const override {
return "make_set"; }
803 const char *
func_name()
const override {
return "format"; }
827 const char *
func_name()
const override {
return "char"; }
843 const char *
func_name()
const override {
return "repeat"; }
851 const char *
func_name()
const override {
return "space"; }
862 const char *
func_name()
const override {
return "rpad"; }
873 const char *
func_name()
const override {
return "lpad"; }
887 const char *
func_name()
const override {
return "uuid_to_bin"; }
901 const char *
func_name()
const override {
return "bin_to_uuid"; }
910 const char *
func_name()
const override {
return "is_uuid"; }
925 const char *
func_name()
const override {
return "conv"; }
935 const char *
func_name()
const override {
return "hex"; }
948 const char *
func_name()
const override {
return "unhex"; }
979 const char *
func_name()
const override {
return "like_range_min"; }
986 const char *
func_name()
const override {
return "like_range_max"; }
1031 bool cache_if_const)
1072 const char *
func_name()
const override {
return "cast_as_char"; }
1087 const char *
func_name()
const override {
return "load_file"; }
1101 pointer_cast<Check_function_as_value_generator_parameters *>(
1119 const char *
func_name()
const override {
return "export_set"; }
1140 bool cache_if_const)
1144 const char *
func_name()
const override {
return "convert"; }
1163 bool eq(
const Item *item)
const override;
1164 const char *
func_name()
const override {
return "collate"; }
1187 const char *
func_name()
const override {
return "charset"; }
1201 const char *
func_name()
const override {
return "collation"; }
1222 uint num_codepoints_arg, uint flags_arg,
1223 bool as_binary_arg =
false)
1232 const char *
func_name()
const override {
return "weight_string"; }
1262 const char *
func_name()
const override {
return "uncompressed_length"; }
1278 const char *
func_name()
const override {
return "compress"; }
1288 const char *
func_name()
const override {
return "to_vector"; }
1303 const char *
func_name()
const override {
return "from_vector"; }
1319 const char *
func_name()
const override {
return "uncompress"; }
1339 pointer_cast<Check_function_as_value_generator_parameters *>(
1354 const char *
func_name()
const override {
return "current_role"; }
1394 const char *
func_name()
const override {
return "roles_graphml"; }
1434 const char *
func_name()
const override {
return "get_dd_column_privileges"; }
1455 const char *
func_name()
const override {
return "get_dd_create_options"; }
1476 const char *
func_name()
const override {
return "get_dd_schema_options"; }
1501 return "internal_get_comment_or_error";
1524 return "get_dd_tablespace_private_data";
1546 const char *
func_name()
const override {
return "get_dd_index_private_data"; }
1568 return "internal_get_partition_nodegroup";
1591 const char *
func_name()
const override {
return "internal_tablespace_type"; }
1614 return "internal_tablespace_logfile_group_name";
1638 return "internal_tablespace_status";
1661 return "internal_tablespace_row_format";
1684 const char *
func_name()
const override {
return "internal_tablespace_extra"; }
1700 const char *
func_name()
const override {
return "convert_cpu_id_mask"; }
1719 const char *
func_name()
const override {
return "get_dd_property_key_value"; }
1740 return "get_jdv_property_key_value";
1760 const char *
func_name()
const override {
return "remove_dd_property_key"; }
1782 return "convert_interval_to_user_interval";
1802 const char *
func_name()
const override {
return "internal_get_username"; }
1821 const char *
func_name()
const override {
return "internal_get_hostname"; }
1841 return "internal_get_enabled_role_json";
1862 return "internal_get_mandatory_roles_json";
1885 return "internal_get_dd_column_extra";
1900 pointer_cast<Check_function_as_value_generator_parameters *>(
1934 std::string_view comma_separated_auth_id_list)
const = 0;
1937inline void tohex(
char *to, uint64_t from, uint len) {
1950 const char *
func_name()
const override {
return "current_role_in"; }
1955 std::string_view comma_separated_auth_id_list)
const override;
1963 const char *
func_name()
const override {
return "current_user_in"; }
1968 std::string_view comma_separated_auth_id_list)
const override;
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:247
void set(const DTCollation &dt)
Definition: item.h:204
void set_repertoire(uint repertoire_arg)
Definition: item.h:230
const CHARSET_INFO * collation
Definition: item.h:186
Date_val is a temporal type that represents dates within the range 0000-01-01 and 9999-12-31.
Definition: my_temporal.h:421
Definition: my_temporal.h:341
static const uint32 max_dimensions
Definition: field.h:3807
Definition: item_cmpfunc.h:305
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_cmpfunc.h:339
The following types of conversions are considered safe:
Definition: item_strfunc.h:997
const CHARSET_INFO * m_cast_cs
The character set we are converting to.
Definition: item_strfunc.h:1002
bool m_safe
Definition: item_strfunc.h:1011
bool m_charset_conversion
If true, conversion is needed so do it, else allow string copy.
Definition: item_strfunc.h:1000
const CHARSET_INFO * m_from_cs
The character set we are converting from.
Definition: item_strfunc.h:1004
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3636
Item_charset_conversion(const POS &pos, Item *a, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1049
bool m_use_cached_value
Marks whether the underlying Item is constant and may be cached.
Definition: item_strfunc.h:1007
String * val_str(String *) override
Definition: item_strfunc.cc:3526
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:1024
longlong m_cast_length
Length argument value, if any given.
Definition: item_strfunc.h:1009
String m_tmp_value
Definition: item_strfunc.h:1005
Item_charset_conversion(THD *thd, Item *a, const CHARSET_INFO *cs_arg, bool cache_if_const)
Definition: item_strfunc.h:1030
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:3605
Definition: item_strfunc.h:305
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:318
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:322
String * val_str(String *) override
Definition: item_strfunc.cc:609
void destroy_op_context()
Definition: item_strfunc.cc:597
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:599
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:314
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:310
Item_str_func super
Definition: item_strfunc.h:306
EVP_CIPHER_CTX * ctx
Definition: item_strfunc.h:307
const char * func_name() const override
Definition: item_strfunc.h:339
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:327
void create_op_context()
Definition: item_strfunc.cc:595
~Item_func_aes_decrypt() override
Definition: item_strfunc.h:332
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:656
Definition: item_strfunc.h:267
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:290
void create_op_context()
Definition: item_strfunc.cc:516
String * val_str(String *) override
Definition: item_strfunc.cc:530
const char * func_name() const override
Definition: item_strfunc.h:302
EVP_CIPHER_CTX * ctx
Definition: item_strfunc.h:270
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:277
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:273
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:520
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:585
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:281
~Item_func_aes_encrypt() override
Definition: item_strfunc.h:295
String tmp_value
Definition: item_strfunc.h:268
Item_str_func super
Definition: item_strfunc.h:269
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:285
void destroy_op_context()
Definition: item_strfunc.cc:518
Definition: item_strfunc.h:890
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2896
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:2906
Item_func_bin_to_uuid(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:897
Item_func_bin_to_uuid(const POS &pos, Item *arg1)
Definition: item_strfunc.h:895
const char * func_name() const override
Definition: item_strfunc.h:901
char m_text_buf[mysql::gtid::Uuid::TEXT_LENGTH+1]
Buffer to store the text result.
Definition: item_strfunc.h:892
Definition: item_strfunc.h:808
Item_func_char(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:810
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:828
Item_func_char(const POS &pos, PT_item_list *list, const CHARSET_INFO *cs)
Definition: item_strfunc.h:815
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:821
String * val_str(String *) override
Definition: item_strfunc.cc:2538
const char * func_name() const override
Definition: item_strfunc.h:827
Definition: item_strfunc.h:1181
Item_func_charset(const POS &pos, Item *a)
Definition: item_strfunc.h:1183
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1188
String * val_str(String *) override
Definition: item_strfunc.cc:3203
const char * func_name() const override
Definition: item_strfunc.h:1187
Definition: item_strfunc.h:1195
String * val_str(String *) override
Definition: item_strfunc.cc:3217
const char * func_name() const override
Definition: item_strfunc.h:1201
Item_func_collation(const POS &pos, Item *a)
Definition: item_strfunc.h:1197
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1202
Definition: item_strfunc.h:1272
String buffer
Definition: item_strfunc.h:1273
Item_func_compress(const POS &pos, Item *a)
Definition: item_strfunc.h:1276
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4109
String * val_str(String *str) override
Definition: item_strfunc.cc:4117
const char * func_name() const override
Definition: item_strfunc.h:1278
Definition: item_strfunc.h:375
const char * func_name() const override
Definition: item_strfunc.h:388
Item_func_concat_ws(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:382
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1144
String tmp_value
Definition: item_strfunc.h:376
String * val_str(String *) override
concat with separator.
Definition: item_strfunc.cc:1111
Item_func_concat_ws(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:378
Definition: item_strfunc.h:361
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:1061
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1086
Item_func_concat(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:367
Item_func_concat(Item *a, Item *b)
Definition: item_strfunc.h:366
Item_func_concat(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:364
const char * func_name() const override
Definition: item_strfunc.h:372
String tmp_value
Definition: item_strfunc.h:362
Definition: item_strfunc.h:1132
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3115
Item_func_conv_charset(const POS &pos, Item *a, const CHARSET_INFO *cs)
Definition: item_strfunc.h:1134
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3121
const char * func_name() const override
Definition: item_strfunc.h:1144
Item_func_conv_charset(THD *thd, Item *a, const CHARSET_INFO *cs, bool cache_if_const)
Definition: item_strfunc.h:1139
Definition: item_strfunc.h:919
String * val_str(String *) override
Definition: item_strfunc.cc:3041
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3033
static constexpr uint32_t CONV_MAX_LENGTH
Definition: item_strfunc.h:922
Item_func_conv(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:923
const char * func_name() const override
Definition: item_strfunc.h:925
Definition: item_strfunc.h:1689
const char * func_name() const override
Definition: item_strfunc.h:1700
Item_func_convert_cpu_id_mask(const POS &pos, Item *list)
Definition: item_strfunc.h:1691
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1694
String * val_str(String *) override
Definition: item_strfunc.cc:5178
Definition: item_strfunc.h:1765
const char * func_name() const override
Definition: item_strfunc.h:1781
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1771
enum Functype functype() const override
Definition: item_strfunc.h:1770
String * val_str(String *) override
Definition: item_strfunc.cc:5477
Item_func_convert_interval_to_user_interval(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1767
Definition: item_strfunc.h:1240
const char * func_name() const override
Definition: item_strfunc.h:1247
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1248
Item_func_crc32(const POS &pos, Item *a)
Definition: item_strfunc.h:1244
longlong val_int() override
Definition: item_strfunc.cc:4097
String value
Definition: item_strfunc.h:1241
Definition: item_strfunc.h:1891
bool m_called
Definition: item_strfunc.h:1924
Item_func_current_auth_id_type_in(const POS &pos, Item *a)
Definition: item_strfunc.h:1895
table_map get_initial_pseudo_tables() const final
Returns the pseudo tables depended upon in order to evaluate this function expression.
Definition: item_strfunc.h:1911
Item_bool_func super
Definition: item_strfunc.h:1892
bool check_function_as_value_generator(uchar *checker_args) final
Check if this item is allowed for a virtual column or inside a default expression.
Definition: item_strfunc.h:1898
longlong val_int() final
Definition: item_strfunc.cc:5746
virtual bool auth_id_in(const Security_context &sctx, std::string_view comma_separated_auth_id_list) const =0
Checks if the user or role in the security context is part of the comma-separated list.
Name_resolution_context * m_name_resolution_ctx
Used to pass a security context to the resolver functions.
Definition: item_strfunc.h:1920
bool do_itemize(Parse_context *pc, Item **res) final
The core function that does the actual itemization.
Definition: item_strfunc.cc:5737
Definition: item_strfunc.h:1946
enum Functype functype() const override
Definition: item_strfunc.h:1951
const char * func_name() const override
Definition: item_strfunc.h:1950
bool auth_id_in(const Security_context &sctx, std::string_view comma_separated_auth_id_list) const override
Checks if the user or role in the security context is part of the comma-separated list.
Definition: item_strfunc.cc:5781
Item_func_current_role_in(const POS &pos, Item *a)
Definition: item_strfunc.h:1948
Definition: item_strfunc.h:1347
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1361
void set_current_role(THD *thd)
Definition: item_strfunc.cc:5234
Item_func_current_role()
Definition: item_strfunc.h:1351
const char * func_name() const override
Definition: item_strfunc.h:1354
bool value_cache_set
a flag whether value_cache is set or not
Definition: item_strfunc.h:1368
Item_func_sysconst super
Definition: item_strfunc.h:1348
Item_func_current_role(const POS &pos)
Definition: item_strfunc.h:1352
String * val_str(String *) override
Definition: item_strfunc.cc:5229
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1357
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1376
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5221
Definition: item_strfunc.h:1959
const char * func_name() const override
Definition: item_strfunc.h:1963
Item_func_current_user_in(const POS &pos, Item *a)
Definition: item_strfunc.h:1961
bool auth_id_in(const Security_context &sctx, std::string_view comma_separated_auth_id_list) const override
Checks if the user or role in the security context is part of the comma-separated list.
Definition: item_strfunc.cc:5775
enum Functype functype() const override
Definition: item_strfunc.h:1964
Definition: item_strfunc.h:717
Item_func_user super
Definition: item_strfunc.h:718
bool resolve_type(THD *) override
Overridden to copy definer priv_user and priv_host.
Definition: item_strfunc.cc:2028
Item_func_current_user(const POS &pos)
Definition: item_strfunc.h:739
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:743
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2105
const char * func_name() const override
Definition: item_strfunc.h:742
LEX_CSTRING m_definer_priv_host
Definition: item_strfunc.h:730
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:2022
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:729
String * val_str(String *) override
Definition: item_strfunc.cc:2053
Name_resolution_context * m_name_resolution_ctx
Used to pass a security context to the resolver functions.
Definition: item_strfunc.h:725
Definition: item_strfunc.h:649
Item_func_sysconst super
Definition: item_strfunc.h:650
String * val_str(String *) override
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:658
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:664
Item_func_database(const POS &pos)
Definition: item_strfunc.h:653
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:1984
const char * func_name() const override
Definition: item_strfunc.h:663
Definition: item_strfunc.h:761
const char * func_name() const override
Definition: item_strfunc.h:769
longlong val_int() override
Definition: item_strfunc.cc:2437
String * val_str(String *str) override
Definition: item_strfunc.cc:2450
double val_real() override
Definition: item_strfunc.cc:2425
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2406
Item_func_elt(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:763
This class represents the function ETAG which is used to traverse the input arguments and compute a 1...
Definition: item_strfunc.h:395
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:406
String * val_str(String *) override
Definition: item_strfunc.cc:1166
Item_func_etag(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:399
Item_func_etag(Item *a, Item *b)
Definition: item_strfunc.h:401
const char * func_name() const override
Definition: item_strfunc.h:405
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1232
String m_tmp_value
Definition: item_strfunc.h:396
Definition: item_strfunc.h:1108
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1110
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:1114
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1112
String * val_str(String *str) override
Definition: item_strfunc.cc:3762
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3831
const char * func_name() const override
Definition: item_strfunc.h:1119
Definition: item_strfunc.h:257
String tmp_value
Definition: item_strfunc.h:258
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:754
const char * func_name() const override
Definition: item_strfunc.h:264
String * val_str(String *) override
Definition: item_strfunc.cc:768
Item_func_from_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:261
Definition: item_strfunc.h:1292
Item_func_from_vector(const POS &pos, Item *a)
Definition: item_strfunc.h:1300
const char * func_name() const override
Definition: item_strfunc.h:1303
String * val_str_ascii(String *str) override
Definition: item_strfunc.cc:4225
String buffer
Definition: item_strfunc.h:1296
static const uint32 per_value_chars
Definition: item_strfunc.h:1293
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4209
static const uint32 max_output_bytes
Definition: item_strfunc.h:1294
Item_func_from_vector(Item *a)
Definition: item_strfunc.h:1299
Definition: item_strfunc.h:1415
Item_func_get_dd_column_privileges(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1417
const char * func_name() const override
Definition: item_strfunc.h:1434
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1421
enum Functype functype() const override
Definition: item_strfunc.h:1420
String * val_str(String *) override
This function prepares string with list of column privileges.
Definition: item_strfunc.cc:4476
Definition: item_strfunc.h:1439
enum Functype functype() const override
Definition: item_strfunc.h:1444
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1445
String * val_str(String *) override
This function prepares string representing create_options for table.
Definition: item_strfunc.cc:4548
Item_func_get_dd_create_options(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1441
const char * func_name() const override
Definition: item_strfunc.h:1455
Definition: item_strfunc.h:1530
const char * func_name() const override
Definition: item_strfunc.h:1546
Item_func_get_dd_index_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1532
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1536
String * val_str(String *) override
This function prepares string representing se_private_data for index.
Definition: item_strfunc.cc:5093
enum Functype functype() const override
Definition: item_strfunc.h:1535
Definition: item_strfunc.h:1705
String * val_str(String *) override
This function prepares string representing value stored at key supplied.
Definition: item_strfunc.cc:5289
enum Functype functype() const override
Definition: item_strfunc.h:1710
Item_func_get_dd_property_key_value(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1707
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1711
const char * func_name() const override
Definition: item_strfunc.h:1719
Definition: item_strfunc.h:1460
String * val_str(String *) override
This function prepares string representing options for a schema.
Definition: item_strfunc.cc:4749
const char * func_name() const override
Definition: item_strfunc.h:1476
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1466
enum Functype functype() const override
Definition: item_strfunc.h:1465
Item_func_get_dd_schema_options(const POS &pos, Item *a)
Definition: item_strfunc.h:1462
Definition: item_strfunc.h:1507
String * val_str(String *) override
This function prepares string representing se_private_data for tablespace.
Definition: item_strfunc.cc:5027
const char * func_name() const override
Definition: item_strfunc.h:1523
enum Functype functype() const override
Definition: item_strfunc.h:1512
Item_func_get_dd_tablespace_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1509
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1513
Definition: item_strfunc.h:1724
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1731
enum Functype functype() const override
Definition: item_strfunc.h:1730
String * val_str(String *) override
This function prepares a string representing the value associated with the logical key that is suppli...
Definition: item_strfunc.cc:5344
const char * func_name() const override
Definition: item_strfunc.h:1739
Item_func_get_jdv_property_key_value(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1726
Definition: item_strfunc.h:1551
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1557
String * val_str(String *) override
Definition: item_strfunc.cc:4874
enum Functype functype() const override
Definition: item_strfunc.h:1556
Item_func_get_partition_nodegroup(const POS &pos, Item *a)
Definition: item_strfunc.h:1553
const char * func_name() const override
Definition: item_strfunc.h:1567
Definition: item_strfunc.h:930
String tmp_value
Definition: item_strfunc.h:931
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3383
Item_func_hex(const POS &pos, Item *a)
Definition: item_strfunc.h:934
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:3395
const char * func_name() const override
Definition: item_strfunc.h:935
Definition: item_strfunc.h:441
String * val_str(String *) override
Definition: item_strfunc.cc:1381
const char * func_name() const override
Definition: item_strfunc.h:452
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1434
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:444
Item_func_insert(const POS &pos, Item *org, Item *start, Item *length, Item *new_str)
Definition: item_strfunc.h:447
String tmp_value
Definition: item_strfunc.h:442
Definition: item_strfunc.h:1868
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1874
String * val_str(String *) override
This function prepares string representing EXTRA column for I_S.COLUMNS.
Definition: item_strfunc.cc:5654
const char * func_name() const override
Definition: item_strfunc.h:1884
Item_func_internal_get_dd_column_extra(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1870
enum Functype functype() const override
Definition: item_strfunc.h:1873
Definition: item_strfunc.h:1826
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1832
enum Functype functype() const override
Definition: item_strfunc.h:1831
Item_func_internal_get_enabled_role_json(const POS &pos)
Definition: item_strfunc.h:1828
String * val_str(String *) override
Definition: item_strfunc.cc:5573
const char * func_name() const override
Definition: item_strfunc.h:1840
Definition: item_strfunc.h:1807
Item_func_internal_get_hostname(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1809
enum Functype functype() const override
Definition: item_strfunc.h:1812
const char * func_name() const override
Definition: item_strfunc.h:1821
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1813
String * val_str(String *) override
Definition: item_strfunc.cc:5538
Definition: item_strfunc.h:1847
const char * func_name() const override
Definition: item_strfunc.h:1861
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1853
enum Functype functype() const override
Definition: item_strfunc.h:1852
Item_func_internal_get_mandatory_roles_json(const POS &pos)
Definition: item_strfunc.h:1849
String * val_str(String *) override
Definition: item_strfunc.cc:5605
Definition: item_strfunc.h:1788
String * val_str(String *) override
Definition: item_strfunc.cc:5501
Item_func_internal_get_username(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1790
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1794
enum Functype functype() const override
Definition: item_strfunc.h:1793
const char * func_name() const override
Definition: item_strfunc.h:1802
Definition: item_strfunc.h:1596
const char * func_name() const override
Definition: item_strfunc.h:1613
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1603
String * val_str(String *) override
Definition: item_strfunc.cc:4931
Item_func_internal_tablespace_logfile_group_name(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1598
enum Functype functype() const override
Definition: item_strfunc.h:1602
Definition: item_strfunc.h:1620
Item_func_internal_tablespace_status(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1622
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1627
String * val_str(String *) override
Definition: item_strfunc.cc:4954
enum Functype functype() const override
Definition: item_strfunc.h:1626
const char * func_name() const override
Definition: item_strfunc.h:1637
Definition: item_strfunc.h:1574
enum Functype functype() const override
Definition: item_strfunc.h:1580
String * val_str(String *) override
Definition: item_strfunc.cc:4914
const char * func_name() const override
Definition: item_strfunc.h:1591
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1581
Item_func_internal_tablespace_type(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1576
Definition: item_strfunc.h:904
const char * func_name() const override
Definition: item_strfunc.h:910
longlong val_int() override
Definition: item_strfunc.cc:2946
Item_func_is_uuid(const POS &pos, Item *a)
Definition: item_strfunc.h:908
Item_bool_func super
Definition: item_strfunc.h:905
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:911
Definition: item_strfunc.h:480
Item_func_left(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:484
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1557
String tmp_value
Definition: item_strfunc.h:481
String * val_str(String *) override
Definition: item_strfunc.cc:1507
const char * func_name() const override
Definition: item_strfunc.h:487
Definition: item_strfunc.h:982
const char * func_name() const override
Definition: item_strfunc.h:986
Item_func_like_range_max(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:984
Definition: item_strfunc.h:975
const char * func_name() const override
Definition: item_strfunc.h:979
Item_func_like_range_min(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:977
Definition: item_strfunc.h:954
String max_str
Definition: item_strfunc.h:957
const bool is_min
Definition: item_strfunc.h:958
Item_func_like_range(const POS &pos, Item *a, Item *b, bool is_min_arg)
Definition: item_strfunc.h:961
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:966
String min_str
Definition: item_strfunc.h:956
String * val_str(String *) override
Definition: item_strfunc.cc:3470
Definition: item_strfunc.h:466
const char * func_name() const override
Definition: item_strfunc.h:469
Item_func_lower(const POS &pos, Item *item)
Definition: item_strfunc.h:468
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1483
Definition: item_strfunc.h:865
String * val_str(String *) override
Definition: item_strfunc.cc:2960
Item_func_lpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:869
String tmp_value
Definition: item_strfunc.h:866
String lpad_str
Definition: item_strfunc.h:866
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2827
const char * func_name() const override
Definition: item_strfunc.h:873
Definition: item_strfunc.h:611
Item_func_ltrim(const POS &pos, Item *a)
Definition: item_strfunc.h:613
Definition: item_strfunc.h:772
String * val_str(String *str) override
Definition: item_strfunc.cc:2490
Item_str_func super
Definition: item_strfunc.h:773
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2527
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2474
String tmp_str
Definition: item_strfunc.h:775
Item_func_make_set(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:778
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:2470
const char * func_name() const override
Definition: item_strfunc.h:784
Definition: item_strfunc.h:1122
String * val_str(String *) override
QUOTE() function returns argument string in single quotes suitable for using in a SQL statement.
Definition: item_strfunc.cc:3892
Item_func_quote(const POS &pos, Item *a)
Definition: item_strfunc.h:1126
String tmp_value
Definition: item_strfunc.h:1123
const char * func_name() const override
Definition: item_strfunc.h:1127
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3851
Definition: item_strfunc.h:342
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:356
static const ulonglong MAX_RANDOM_BYTES_BUFFER
limitation from the SSL library
Definition: item_strfunc.h:346
Item_str_func super
Definition: item_strfunc.h:343
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:664
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:681
Item_func_random_bytes(const POS &pos, Item *a)
Definition: item_strfunc.h:349
String * val_str(String *a) override
Definition: item_strfunc.cc:688
const char * func_name() const override
Definition: item_strfunc.h:355
Definition: item_strfunc.h:1746
Item_func_remove_dd_property_key(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1748
const char * func_name() const override
Definition: item_strfunc.h:1760
String * val_str(String *) override
This function removes a key value from given property string.
Definition: item_strfunc.cc:5431
enum Functype functype() const override
Definition: item_strfunc.h:1751
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1752
Definition: item_strfunc.h:835
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2588
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:2622
String tmp_value
Definition: item_strfunc.h:836
Item_func_repeat(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:839
const char * func_name() const override
Definition: item_strfunc.h:843
Definition: item_strfunc.h:428
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1359
String * val_str(String *) override
Replace all occurrences of string2 in string1 with string3.
Definition: item_strfunc.cc:1297
const char * func_name() const override
Definition: item_strfunc.h:438
String tmp_value
Definition: item_strfunc.h:429
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:431
String tmp_value2
Definition: item_strfunc.h:429
Item_func_replace(const POS &pos, Item *org, Item *find, Item *replace)
Definition: item_strfunc.h:434
Definition: item_strfunc.h:416
Item_func_reverse(Item *a)
Definition: item_strfunc.h:420
String * val_str(String *) override
Definition: item_strfunc.cc:1242
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1284
String tmp_value
Definition: item_strfunc.h:417
Item_func_reverse(const POS &pos, Item *a)
Definition: item_strfunc.h:421
const char * func_name() const override
Definition: item_strfunc.h:425
Definition: item_strfunc.h:490
Item_func_right(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:494
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1592
const char * func_name() const override
Definition: item_strfunc.h:498
String * val_str(String *) override
Definition: item_strfunc.cc:1567
String tmp_value
Definition: item_strfunc.h:491
Definition: item_strfunc.h:1379
Item_func_roles_graphml(const POS &pos)
Definition: item_strfunc.h:1384
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5272
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1409
Item_func_sysconst super
Definition: item_strfunc.h:1380
const char * func_name() const override
Definition: item_strfunc.h:1394
Item_func_roles_graphml()
Definition: item_strfunc.h:1383
bool calculate_graphml(THD *thd)
Constructs and caches the graphml string.
Definition: item_strfunc.cc:5252
String * val_str(String *) override
Definition: item_strfunc.cc:5267
bool value_cache_set
Set to true if value_cache is set.
Definition: item_strfunc.h:1412
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1389
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1396
Definition: item_strfunc.h:854
String tmp_value
Definition: item_strfunc.h:855
Item_func_rpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:858
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2728
String * val_str(String *) override
Definition: item_strfunc.cc:2755
const char * func_name() const override
Definition: item_strfunc.h:862
String rpad_str
Definition: item_strfunc.h:855
Definition: item_strfunc.h:617
Item_func_rtrim(const POS &pos, Item *a)
Definition: item_strfunc.h:619
Definition: item_strfunc.h:1150
bool eq(const Item *item) const override
Compare this item with another item for equality.
Definition: item_strfunc.cc:3179
Item_field * field_for_view_update() override
Definition: item_strfunc.h:1168
LEX_CSTRING collation_string
Definition: item_strfunc.h:1153
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3192
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:1174
const char * func_name() const override
Definition: item_strfunc.h:1164
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3149
enum Functype functype() const override
Definition: item_strfunc.h:1165
String * val_str(String *) override
Definition: item_strfunc.cc:3140
Item_func_set_collation(const POS &pos, Item *a, const LEX_CSTRING &collation_string_arg)
Definition: item_strfunc.h:1156
Item_str_func super
Definition: item_strfunc.h:1151
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3130
Definition: item_strfunc.h:189
const char * func_name() const override
Definition: item_strfunc.h:195
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:219
Item_func_sha2(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:191
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:302
Definition: item_strfunc.h:750
Item_func_soundex(const POS &pos, Item *a)
Definition: item_strfunc.h:755
String tmp_value
Definition: item_strfunc.h:751
Item_func_soundex(Item *a)
Definition: item_strfunc.h:754
String * val_str(String *) override
Definition: item_strfunc.cc:2158
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2113
const char * func_name() const override
Definition: item_strfunc.h:758
Definition: item_strfunc.h:846
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2668
String * val_str(String *) override
Definition: item_strfunc.cc:2700
const char * func_name() const override
Definition: item_strfunc.h:851
Item_func_space(const POS &pos, Item *arg1)
Definition: item_strfunc.h:848
Definition: item_strfunc.h:231
bool resolve_type(THD *thd) override
The type is always LONGTEXT, just like the digest_text columns in Performance Schema.
Definition: item_strfunc.cc:1021
const char * func_name() const override
Definition: item_strfunc.h:236
uchar * m_token_buffer
Definition: item_strfunc.h:254
Item_func_statement_digest_text(const POS &pos, Item *query_string)
Definition: item_strfunc.h:233
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:244
String * val_str(String *) override
Definition: item_strfunc.cc:1030
Definition: item_strfunc.h:209
uchar * m_token_buffer
Definition: item_strfunc.h:228
Item_func_statement_digest(const POS &pos, Item *query_string)
Definition: item_strfunc.h:211
const char * func_name() const override
Definition: item_strfunc.h:214
String * val_str_ascii(String *) override
Implementation of the STATEMENT_DIGEST() native function.
Definition: item_strfunc.cc:991
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:975
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:215
Definition: item_strfunc.h:519
String * val_str(String *) override
Definition: item_strfunc.cc:1702
Item_func_substr_index(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:523
String tmp_value
Definition: item_strfunc.h:520
const char * func_name() const override
Definition: item_strfunc.h:527
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1691
Definition: item_strfunc.h:501
const char * func_name() const override
Definition: item_strfunc.h:516
Item_func_substr(Item *a, Item *b)
Definition: item_strfunc.h:507
Item_func_substr(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:510
String tmp_value
Definition: item_strfunc.h:504
Item_func_substr(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:508
Item_str_func super
Definition: item_strfunc.h:502
String * val_str(String *) override
Definition: item_strfunc.cc:1603
Item_func_substr(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:511
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1650
Definition: item_strfunc.h:623
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:639
virtual const Name_string fully_qualified_func_name() const =0
Item_func_sysconst(const POS &pos)
Definition: item_strfunc.h:630
Item_str_func super
Definition: item_strfunc.h:624
Item_func_sysconst()
Definition: item_strfunc.h:627
Definition: item_strfunc.h:198
const char * func_name() const override
Definition: item_strfunc.h:206
Item_func_to_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:202
Item_func_to_base64(Item *a)
Definition: item_strfunc.h:203
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:719
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:736
String tmp_value
Definition: item_strfunc.h:199
Definition: item_strfunc.h:1282
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4166
String * val_str(String *str) override
Definition: item_strfunc.cc:4181
String buffer
Definition: item_strfunc.h:1283
const char * func_name() const override
Definition: item_strfunc.h:1288
Item_func_to_vector(const POS &pos, Item *a)
Definition: item_strfunc.h:1286
Definition: item_strfunc.h:530
const bool m_trim_trailing
Definition: item_strfunc.h:551
bool trim_trailing() const
Definition: item_strfunc.h:583
bool trim_leading() const
Definition: item_strfunc.h:578
const char * func_name() const override
Definition: item_strfunc.h:590
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1914
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:1954
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:537
@ TRIM_BOTH_DEFAULT
Definition: item_strfunc.h:538
@ TRIM_LTRIM
Definition: item_strfunc.h:542
@ TRIM_RTRIM
Definition: item_strfunc.h:543
@ TRIM_BOTH
Definition: item_strfunc.h:539
@ TRIM_LEADING
Definition: item_strfunc.h:540
@ TRIM_TRAILING
Definition: item_strfunc.h:541
Item_func_trim(Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:566
Item_func_trim(Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:554
Item_func_trim(const POS &pos, Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:572
String tmp_value
Definition: item_strfunc.h:547
const TRIM_MODE m_trim_mode
Definition: item_strfunc.h:549
Item_func_trim(const POS &pos, Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:560
String remove
Definition: item_strfunc.h:548
const bool m_trim_leading
Definition: item_strfunc.h:550
String * val_str(String *) override
Definition: item_strfunc.cc:1819
Definition: item_strfunc.h:1307
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1312
const char * func_name() const override
Definition: item_strfunc.h:1319
String * val_str(String *str) override
Definition: item_strfunc.cc:4257
String buffer
Definition: item_strfunc.h:1308
Item_func_uncompress(const POS &pos, Item *a)
Definition: item_strfunc.h:1311
Definition: item_strfunc.h:1256
const char * func_name() const override
Definition: item_strfunc.h:1262
Item_func_uncompressed_length(const POS &pos, Item *a)
Definition: item_strfunc.h:1260
String value
Definition: item_strfunc.h:1257
longlong val_int() override
Definition: item_strfunc.cc:4068
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1263
Definition: item_strfunc.h:940
Item_func_unhex(const POS &pos, Item *a)
Definition: item_strfunc.h:944
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3425
String * val_str(String *) override
Convert given hex string to a binary string.
Definition: item_strfunc.cc:3438
String tmp_value
Definition: item_strfunc.h:941
const char * func_name() const override
Definition: item_strfunc.h:948
Definition: item_strfunc.h:473
Item_func_upper(const POS &pos, Item *item)
Definition: item_strfunc.h:475
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1495
const char * func_name() const override
Definition: item_strfunc.h:476
Definition: item_strfunc.h:669
Item_func_user(const POS &pos)
Definition: item_strfunc.h:682
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:686
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:710
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2095
String * val_str(String *) override
Definition: item_strfunc.cc:2013
Item_func_sysconst super
Definition: item_strfunc.h:670
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.h:704
Item_func_user()
Definition: item_strfunc.h:681
const char * func_name() const override
Definition: item_strfunc.h:709
bool evaluate(const char *user, const char *host)
Evaluate user name, must be called once per execution.
Definition: item_strfunc.cc:2072
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:2008
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:700
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:692
bool m_evaluated
True when function value is evaluated, set to false after each execution.
Definition: item_strfunc.h:674
Definition: item_strfunc.h:876
String * val_str(String *) override
Definition: item_strfunc.cc:2864
Item_func_uuid_to_bin(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:883
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2855
uchar m_bin_buf[mysql::gtid::Uuid::BYTE_LENGTH]
Buffer to store the binary result.
Definition: item_strfunc.h:878
Item_func_uuid_to_bin(const POS &pos, Item *arg1)
Definition: item_strfunc.h:881
const char * func_name() const override
Definition: item_strfunc.h:887
Definition: item_strfunc.h:1323
Item_func_uuid(const POS &pos)
Definition: item_strfunc.h:1328
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:1337
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:1331
String * val_str(String *) override
Definition: item_strfunc.cc:4457
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:4342
const char * func_name() const override
Definition: item_strfunc.h:1335
Item_func_uuid()
Definition: item_strfunc.h:1327
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4335
Item_str_func super
Definition: item_strfunc.h:1324
Definition: item_strfunc.h:1210
String * val_str(String *) override
Definition: item_strfunc.cc:3295
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3251
const char * func_name() const override
Definition: item_strfunc.h:1232
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3239
const uint num_codepoints
Definition: item_strfunc.h:1220
String tmp_value
Definition: item_strfunc.h:1213
Item_str_func super
Definition: item_strfunc.h:1211
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3228
Item_field * m_field_ref
Definition: item_strfunc.h:1216
const uint result_length
Definition: item_strfunc.h:1215
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3286
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:1221
const bool as_binary
Definition: item_strfunc.h:1217
uint flags
Definition: item_strfunc.h:1214
Definition: item_func.h:101
Item ** args
Array of pointers to arguments.
Definition: item_func.h:108
bool reject_vector_args()
Definition: item_func.cc:1636
Functype
Definition: item_func.h:214
@ COLLATE_FUNC
Definition: item_func.h:261
@ DD_INTERNAL_FUNC
Definition: item_func.h:271
@ CURRENT_USER_IN_FUNC
Definition: item_func.h:365
@ CURRENT_ROLE_IN_FUNC
Definition: item_func.h:366
@ TYPECAST_FUNC
Definition: item_func.h:263
virtual const char * func_name() const =0
bool param_type_is_default(THD *thd, uint start, uint end, uint step, enum_field_types def)
For arguments of this Item_func ("args" array), in range [start, start+step, start+2*step,...
Definition: item_func.cc:530
uint arg_count
How many arguments in 'args'.
Definition: item_func.h:131
bool null_on_null
Affects how to determine that NULL argument implies a NULL function return.
Definition: item_func.h:187
Definition: item_func.h:1048
Definition: item_strfunc.h:1077
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3689
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1091
String tmp_value
Definition: item_strfunc.h:1080
Item_str_func super
Definition: item_strfunc.h:1078
String * val_str(String *) override
Definition: item_strfunc.cc:3697
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:1099
Item_load_file(const POS &pos, Item *a)
Definition: item_strfunc.h:1083
const char * func_name() const override
Definition: item_strfunc.h:1087
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:1088
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item.cc:11689
Definition: item_strfunc.h:152
Item_str_ascii_func(Item *a, Item *b)
Definition: item_strfunc.h:167
Item_str_ascii_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:178
String * val_str_ascii(String *) override=0
Item_str_ascii_func()
Definition: item_strfunc.h:156
Item_str_ascii_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:175
String ascii_buf
Definition: item_strfunc.h:153
Item_str_ascii_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:170
Item_str_ascii_func(const POS &pos, Item *a)
Definition: item_strfunc.h:163
Item_str_ascii_func(Item *a)
Definition: item_strfunc.h:160
String * val_str(String *str) override
Definition: item_strfunc.h:183
Definition: item_strfunc.h:455
String * val_str(String *) override
Definition: item_strfunc.cc:1451
Item_str_conv(const POS &pos, Item *item)
Definition: item_strfunc.h:462
String tmp_value
Definition: item_strfunc.h:459
uint multiply
Definition: item_strfunc.h:457
my_charset_conv_case converter
Definition: item_strfunc.h:458
Definition: item_strfunc.h:79
Item_str_func()
Definition: item_strfunc.h:83
String * val_str_from_val_str_ascii(String *str, String *str2)
Definition: item_strfunc.cc:155
Item_str_func(Item *a, Item *b)
Definition: item_strfunc.h:91
my_decimal * val_decimal(my_decimal *) override
Definition: item_strfunc.cc:187
String * push_packet_overflow_warning(THD *thd, const char *func)
Calls push_warning_printf for packet overflow.
Definition: item_strfunc.cc:1547
Item_str_func(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:115
Item_str_func(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:113
Item_str_func(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:97
bool val_time(Time_val *time) override
Evaluate the item and return result as a time value.
Definition: item_strfunc.h:124
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:144
Item_func super
Definition: item_strfunc.h:80
Item_str_func(Item *a)
Definition: item_strfunc.h:87
Item_str_func(Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:100
void left_right_max_length(THD *thd)
Definition: item_strfunc.cc:1530
bool val_date(Date_val *date, my_time_flags_t flags) override
Evaluate the item and return result as a date value.
Definition: item_strfunc.h:121
enum Item_result result_type() const override
Definition: item_strfunc.h:128
Item_str_func(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:95
longlong val_int() override
Definition: item_strfunc.h:118
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:110
Item_str_func(const POS &pos, Item *a)
Definition: item_strfunc.h:89
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:131
double val_real() override
Definition: item_strfunc.h:119
Item_str_func(const POS &pos)
Definition: item_strfunc.h:85
Item_str_func(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:93
Item_str_func(Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:105
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:177
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:108
Item_str_func(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:102
bool val_datetime(Datetime_val *dt, my_time_flags_t flags) override
Evaluate the item and return result as a datetime value.
Definition: item_strfunc.h:125
Definition: item_strfunc.h:1055
const char * func_name() const override
Definition: item_strfunc.h:1072
Item_typecast_char(THD *thd, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1060
Item_typecast_char(const POS &pos, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1065
enum Functype functype() const override
Definition: item_strfunc.h:1070
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3507
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.cc:3520
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3500
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:935
String str_value
str_values's main purpose is to cache the value in save_in_field
Definition: item.h:3680
void set_nullable(bool nullable)
Definition: item.h:3792
void set_data_type_blob(enum_field_types type, uint32 max_l)
Set the Item to be of BLOB type.
Definition: item.h:1689
DTCollation collation
Character set and collation properties assigned for this Item.
Definition: item.h:3687
virtual Item_field * field_for_view_update()
Definition: item.h:3288
bool fixed
True if item has been resolved.
Definition: item.h:3780
bool null_value
True if item is null.
Definition: item.h:3817
bool get_datetime_from_string(Datetime_val *dt, my_time_flags_t flags)
Convert val_str() to datetime.
Definition: item.cc:1605
bool unsigned_flag
Definition: item.h:3818
bool get_date_from_string(Date_val *date, my_time_flags_t flags)
Convert val_str() to date.
Definition: item.cc:1613
longlong val_int_from_string()
Definition: item.cc:541
void set_data_type_string(uint32 max_l)
Set the Item to be variable length string.
Definition: item.h:1606
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:1454
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:3705
double val_real_from_string()
Definition: item.cc:491
bool get_time_from_string(Time_val *time)
Convert val_str() to time.
Definition: item.cc:1775
Represents a JSON container value of type "object" (ECMA), type J_OBJECT here.
Definition: json_dom.h:374
bool add_alias(std::string_view key, Json_dom *value)
Insert the value into the object.
Definition: json_dom.h:416
Definition: sql_list.h:494
Definition: sql_locale.h:37
Storage for name strings.
Definition: item.h:297
Wrapper class for an Item list head, used to allocate Item lists in the parser in a context-independe...
Definition: parse_tree_helpers.h:109
Base class for parse tree nodes (excluding the Parse_tree_root hierarchy)
Definition: parse_tree_node_base.h:231
A set of THD members describing the current authenticated user.
Definition: sql_security_ctx.h:54
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:169
void mem_free()
Definition: sql_string.h:402
void mark_as_const()
Definition: sql_string.h:249
bool copy()
Definition: sql_string.cc:198
void set(String &str, size_t offset, size_t arg_length)
Definition: sql_string.h:304
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Time_val is a temporal type that represents only time.
Definition: my_temporal.h:57
A (partial) implementation of std::deque allocating its blocks on a MEM_ROOT.
Definition: mem_root_deque.h:172
my_decimal class limits 'decimal_t' type to what we need in MySQL.
Definition: my_decimal.h:97
constexpr std::array< const char, 37 > dig_vec_lower
Definition: dig_vec.h:36
enum_query_type
Query type constants (usable as bitmap flags).
Definition: enum_query_type.h:31
@ MYSQL_TYPE_LONGLONG
Definition: field_types.h:65
@ MYSQL_TYPE_LONG_BLOB
Definition: field_types.h:87
static const std::string dec("DECRYPTION")
static int flags[50]
Definition: hp_test1.cc:40
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:180
#define NAME_STRING(x)
Definition: item.h:357
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:5162
String * mysql_generate_uuid(String *str)
Generate Universal Unique Identifier (UUID).
Definition: item_strfunc.cc:4350
void tohex(char *to, uint64_t from, uint len)
Definition: item_strfunc.h:1937
A better implementation of the UNIX ctype(3) library.
MYSQL_STRINGS_EXPORT CHARSET_INFO my_charset_bin
Definition: ctype-bin.cc:499
size_t(* my_charset_conv_case)(const CHARSET_INFO *, char *, size_t, char *, size_t)
Definition: m_ctype.h:336
static constexpr uint32_t MY_CS_UNICODE
Definition: m_ctype.h:130
static constexpr uint32_t MY_REPERTOIRE_ASCII
Definition: m_ctype.h:152
MYSQL_PLUGIN_IMPORT CHARSET_INFO * system_charset_info
Definition: mysqld.cc:1582
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
#define MY_INT32_NUM_DECIMAL_DIGITS
Definition: my_inttypes.h:100
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 int_to_datetime.
Definition: my_time.h:87
Common definition between mysql server & client.
#define MAX_BLOB_WIDTH
Default width for blob in bytes.
Definition: mysql_com.h:913
#define USERNAME_LENGTH
Definition: mysql_com.h:69
#define NAME_CHAR_LEN
Field/table name length.
Definition: mysql_com.h:60
#define USERNAME_CHAR_LENGTH
Definition: mysql_com.h:64
char * user
Definition: mysqladmin.cc:67
const char * host
Definition: mysqladmin.cc:66
static bool replace
Definition: mysqlimport.cc:70
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1077
Definition: applier_version.h:27
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:40
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2728
type_conversion_status
Status when storing a value in a field or converting from one datatype to another.
Definition: field.h:200
@ VGS_CHECK_CONSTRAINT
Definition: field.h:474
@ VGS_GENERATED_COLUMN
Definition: field.h:472
@ DERIVATION_COERCIBLE
Definition: field.h:180
@ DERIVATION_SYSCONST
Definition: field.h:181
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:487
const char * banned_function_name
the name of the function which is not allowed
Definition: item.h:501
Value_generator_source source
Definition: item.h:499
Definition: mysql_lex_string.h:40
const char * str
Definition: mysql_lex_string.h:41
size_t length
Definition: mysql_lex_string.h:42
Bison "location" class.
Definition: parse_location.h:43
Instances of Name_resolution_context store the information necessary for name resolution of Items and...
Definition: item.h:414
Environment data for the contextualization phase.
Definition: parse_tree_node_base.h:422
static const size_t TEXT_LENGTH
The number of bytes in the textual representation of a Uuid.
Definition: uuid.h:168
static constexpr std::size_t BYTE_LENGTH
The number of bytes in the data of a Uuid.
Definition: uuid.h:143
Item_result
Type of the user defined function return slot and arguments.
Definition: udf_registration_types.h:39
@ STRING_RESULT
not valid for UDFs
Definition: udf_registration_types.h:41