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};
271#if OPENSSL_VERSION_NUMBER < 0x10100000L
305 const char *
func_name()
const override {
return "aes_encrypt"; }
310 EVP_CIPHER_CTX *
ctx{
nullptr};
311#if OPENSSL_VERSION_NUMBER < 0x10100000L
345 const char *
func_name()
const override {
return "aes_decrypt"; }
361 const char *
func_name()
const override {
return "random_bytes"; }
378 const char *
func_name()
const override {
return "concat"; }
394 const char *
func_name()
const override {
return "concat_ws"; }
411 const char *
func_name()
const override {
return "etag"; }
414 pointer_cast<Check_function_as_value_generator_parameters *>(
431 const char *
func_name()
const override {
return "reverse"; }
444 const char *
func_name()
const override {
return "replace"; }
458 const char *
func_name()
const override {
return "insert"; }
475 const char *
func_name()
const override {
return "lower"; }
482 const char *
func_name()
const override {
return "upper"; }
493 const char *
func_name()
const override {
return "left"; }
504 const char *
func_name()
const override {
return "right"; }
518 :
super(pos, a, b, c) {}
522 const char *
func_name()
const override {
return "substr"; }
533 const char *
func_name()
const override {
return "substring_index"; }
647 pointer_cast<Check_function_as_value_generator_parameters *>(
669 const char *
func_name()
const override {
return "database"; }
700 pointer_cast<Check_function_as_value_generator_parameters *>(
715 const char *
func_name()
const override {
return "user"; }
748 const char *
func_name()
const override {
return "current_user"; }
764 const char *
func_name()
const override {
return "soundex"; }
775 const char *
func_name()
const override {
return "elt"; }
790 const char *
func_name()
const override {
return "make_set"; }
809 const char *
func_name()
const override {
return "format"; }
833 const char *
func_name()
const override {
return "char"; }
849 const char *
func_name()
const override {
return "repeat"; }
857 const char *
func_name()
const override {
return "space"; }
868 const char *
func_name()
const override {
return "rpad"; }
879 const char *
func_name()
const override {
return "lpad"; }
893 const char *
func_name()
const override {
return "uuid_to_bin"; }
907 const char *
func_name()
const override {
return "bin_to_uuid"; }
916 const char *
func_name()
const override {
return "is_uuid"; }
931 const char *
func_name()
const override {
return "conv"; }
941 const char *
func_name()
const override {
return "hex"; }
954 const char *
func_name()
const override {
return "unhex"; }
985 const char *
func_name()
const override {
return "like_range_min"; }
992 const char *
func_name()
const override {
return "like_range_max"; }
1037 bool cache_if_const)
1078 const char *
func_name()
const override {
return "cast_as_char"; }
1093 const char *
func_name()
const override {
return "load_file"; }
1107 pointer_cast<Check_function_as_value_generator_parameters *>(
1125 const char *
func_name()
const override {
return "export_set"; }
1146 bool cache_if_const)
1150 const char *
func_name()
const override {
return "convert"; }
1169 bool eq(
const Item *item)
const override;
1170 const char *
func_name()
const override {
return "collate"; }
1193 const char *
func_name()
const override {
return "charset"; }
1207 const char *
func_name()
const override {
return "collation"; }
1228 uint num_codepoints_arg, uint flags_arg,
1229 bool as_binary_arg =
false)
1238 const char *
func_name()
const override {
return "weight_string"; }
1268 const char *
func_name()
const override {
return "uncompressed_length"; }
1284 const char *
func_name()
const override {
return "compress"; }
1294 const char *
func_name()
const override {
return "to_vector"; }
1309 const char *
func_name()
const override {
return "from_vector"; }
1325 const char *
func_name()
const override {
return "uncompress"; }
1345 pointer_cast<Check_function_as_value_generator_parameters *>(
1360 const char *
func_name()
const override {
return "current_role"; }
1400 const char *
func_name()
const override {
return "roles_graphml"; }
1440 const char *
func_name()
const override {
return "get_dd_column_privileges"; }
1461 const char *
func_name()
const override {
return "get_dd_create_options"; }
1482 const char *
func_name()
const override {
return "get_dd_schema_options"; }
1507 return "internal_get_comment_or_error";
1530 return "get_dd_tablespace_private_data";
1552 const char *
func_name()
const override {
return "get_dd_index_private_data"; }
1574 return "internal_get_partition_nodegroup";
1597 const char *
func_name()
const override {
return "internal_tablespace_type"; }
1620 return "internal_tablespace_logfile_group_name";
1644 return "internal_tablespace_status";
1667 return "internal_tablespace_row_format";
1690 const char *
func_name()
const override {
return "internal_tablespace_extra"; }
1706 const char *
func_name()
const override {
return "convert_cpu_id_mask"; }
1725 const char *
func_name()
const override {
return "get_dd_property_key_value"; }
1746 return "get_jdv_property_key_value";
1766 const char *
func_name()
const override {
return "remove_dd_property_key"; }
1788 return "convert_interval_to_user_interval";
1808 const char *
func_name()
const override {
return "internal_get_username"; }
1827 const char *
func_name()
const override {
return "internal_get_hostname"; }
1847 return "internal_get_enabled_role_json";
1868 return "internal_get_mandatory_roles_json";
1891 return "internal_get_dd_column_extra";
1906 pointer_cast<Check_function_as_value_generator_parameters *>(
1940 std::string_view comma_separated_auth_id_list)
const = 0;
1943inline void tohex(
char *to, uint64_t from, uint len) {
1956 const char *
func_name()
const override {
return "current_role_in"; }
1961 std::string_view comma_separated_auth_id_list)
const override;
1969 const char *
func_name()
const override {
return "current_user_in"; }
1974 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:3793
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:1003
const CHARSET_INFO * m_cast_cs
The character set we are converting to.
Definition: item_strfunc.h:1008
bool m_safe
Definition: item_strfunc.h:1017
bool m_charset_conversion
If true, conversion is needed so do it, else allow string copy.
Definition: item_strfunc.h:1006
const CHARSET_INFO * m_from_cs
The character set we are converting from.
Definition: item_strfunc.h:1010
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3652
Item_charset_conversion(const POS &pos, Item *a, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1055
bool m_use_cached_value
Marks whether the underlying Item is constant and may be cached.
Definition: item_strfunc.h:1013
String * val_str(String *) override
Definition: item_strfunc.cc:3542
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:1030
longlong m_cast_length
Length argument value, if any given.
Definition: item_strfunc.h:1015
String m_tmp_value
Definition: item_strfunc.h:1011
Item_charset_conversion(THD *thd, Item *a, const CHARSET_INFO *cs_arg, bool cache_if_const)
Definition: item_strfunc.h:1036
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:3621
Definition: item_strfunc.h:308
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:324
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:328
String * val_str(String *) override
Definition: item_strfunc.cc:637
void destroy_op_context()
Definition: item_strfunc.cc:621
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:627
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:320
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:316
Item_str_func super
Definition: item_strfunc.h:309
EVP_CIPHER_CTX * ctx
Definition: item_strfunc.h:310
const char * func_name() const override
Definition: item_strfunc.h:345
Item_func_aes_decrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e, Item *f)
Definition: item_strfunc.h:333
void create_op_context()
Definition: item_strfunc.cc:613
~Item_func_aes_decrypt() override
Definition: item_strfunc.h:338
EVP_CIPHER_CTX stack_ctx
Definition: item_strfunc.h:312
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:688
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:293
void create_op_context()
Definition: item_strfunc.cc:520
String * val_str(String *) override
Definition: item_strfunc.cc:544
const char * func_name() const override
Definition: item_strfunc.h:305
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:280
EVP_CIPHER_CTX stack_ctx
Definition: item_strfunc.h:272
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:276
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:534
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:603
Item_func_aes_encrypt(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:284
~Item_func_aes_encrypt() override
Definition: item_strfunc.h:298
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:288
void destroy_op_context()
Definition: item_strfunc.cc:528
Definition: item_strfunc.h:896
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2912
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:2922
Item_func_bin_to_uuid(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:903
Item_func_bin_to_uuid(const POS &pos, Item *arg1)
Definition: item_strfunc.h:901
const char * func_name() const override
Definition: item_strfunc.h:907
char m_text_buf[mysql::gtid::Uuid::TEXT_LENGTH+1]
Buffer to store the text result.
Definition: item_strfunc.h:898
Definition: item_strfunc.h:814
Item_func_char(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:816
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:834
Item_func_char(const POS &pos, PT_item_list *list, const CHARSET_INFO *cs)
Definition: item_strfunc.h:821
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:827
String * val_str(String *) override
Definition: item_strfunc.cc:2554
const char * func_name() const override
Definition: item_strfunc.h:833
Definition: item_strfunc.h:1187
Item_func_charset(const POS &pos, Item *a)
Definition: item_strfunc.h:1189
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1194
String * val_str(String *) override
Definition: item_strfunc.cc:3219
const char * func_name() const override
Definition: item_strfunc.h:1193
Definition: item_strfunc.h:1201
String * val_str(String *) override
Definition: item_strfunc.cc:3233
const char * func_name() const override
Definition: item_strfunc.h:1207
Item_func_collation(const POS &pos, Item *a)
Definition: item_strfunc.h:1203
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1208
Definition: item_strfunc.h:1278
String buffer
Definition: item_strfunc.h:1279
Item_func_compress(const POS &pos, Item *a)
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:4125
String * val_str(String *str) override
Definition: item_strfunc.cc:4133
const char * func_name() const override
Definition: item_strfunc.h:1284
Definition: item_strfunc.h:381
const char * func_name() const override
Definition: item_strfunc.h:394
Item_func_concat_ws(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:388
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1161
String tmp_value
Definition: item_strfunc.h:382
String * val_str(String *) override
concat with separator.
Definition: item_strfunc.cc:1128
Item_func_concat_ws(mem_root_deque< Item * > *list)
Definition: item_strfunc.h:384
Definition: item_strfunc.h:367
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:1078
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1103
Item_func_concat(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:373
Item_func_concat(Item *a, Item *b)
Definition: item_strfunc.h:372
Item_func_concat(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:370
const char * func_name() const override
Definition: item_strfunc.h:378
String tmp_value
Definition: item_strfunc.h:368
Definition: item_strfunc.h:1138
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3131
Item_func_conv_charset(const POS &pos, Item *a, const CHARSET_INFO *cs)
Definition: item_strfunc.h:1140
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3137
const char * func_name() const override
Definition: item_strfunc.h:1150
Item_func_conv_charset(THD *thd, Item *a, const CHARSET_INFO *cs, bool cache_if_const)
Definition: item_strfunc.h:1145
Definition: item_strfunc.h:925
String * val_str(String *) override
Definition: item_strfunc.cc:3057
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3049
static constexpr uint32_t CONV_MAX_LENGTH
Definition: item_strfunc.h:928
Item_func_conv(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:929
const char * func_name() const override
Definition: item_strfunc.h:931
Definition: item_strfunc.h:1695
const char * func_name() const override
Definition: item_strfunc.h:1706
Item_func_convert_cpu_id_mask(const POS &pos, Item *list)
Definition: item_strfunc.h:1697
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1700
String * val_str(String *) override
Definition: item_strfunc.cc:5194
Definition: item_strfunc.h:1771
const char * func_name() const override
Definition: item_strfunc.h:1787
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1777
enum Functype functype() const override
Definition: item_strfunc.h:1776
String * val_str(String *) override
Definition: item_strfunc.cc:5493
Item_func_convert_interval_to_user_interval(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1773
Definition: item_strfunc.h:1246
const char * func_name() const override
Definition: item_strfunc.h:1253
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1254
Item_func_crc32(const POS &pos, Item *a)
Definition: item_strfunc.h:1250
longlong val_int() override
Definition: item_strfunc.cc:4113
String value
Definition: item_strfunc.h:1247
Definition: item_strfunc.h:1897
bool m_called
Definition: item_strfunc.h:1930
Item_func_current_auth_id_type_in(const POS &pos, Item *a)
Definition: item_strfunc.h:1901
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:1917
Item_bool_func super
Definition: item_strfunc.h:1898
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:1904
longlong val_int() final
Definition: item_strfunc.cc:5762
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:1926
bool do_itemize(Parse_context *pc, Item **res) final
The core function that does the actual itemization.
Definition: item_strfunc.cc:5753
Definition: item_strfunc.h:1952
enum Functype functype() const override
Definition: item_strfunc.h:1957
const char * func_name() const override
Definition: item_strfunc.h:1956
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:5797
Item_func_current_role_in(const POS &pos, Item *a)
Definition: item_strfunc.h:1954
Definition: item_strfunc.h:1353
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1367
void set_current_role(THD *thd)
Definition: item_strfunc.cc:5250
Item_func_current_role()
Definition: item_strfunc.h:1357
const char * func_name() const override
Definition: item_strfunc.h:1360
bool value_cache_set
a flag whether value_cache is set or not
Definition: item_strfunc.h:1374
Item_func_sysconst super
Definition: item_strfunc.h:1354
Item_func_current_role(const POS &pos)
Definition: item_strfunc.h:1358
String * val_str(String *) override
Definition: item_strfunc.cc:5245
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1363
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1382
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5237
Definition: item_strfunc.h:1965
const char * func_name() const override
Definition: item_strfunc.h:1969
Item_func_current_user_in(const POS &pos, Item *a)
Definition: item_strfunc.h:1967
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:5791
enum Functype functype() const override
Definition: item_strfunc.h:1970
Definition: item_strfunc.h:723
Item_func_user super
Definition: item_strfunc.h:724
bool resolve_type(THD *) override
Overridden to copy definer priv_user and priv_host.
Definition: item_strfunc.cc:2044
Item_func_current_user(const POS &pos)
Definition: item_strfunc.h:745
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:749
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2121
const char * func_name() const override
Definition: item_strfunc.h:748
LEX_CSTRING m_definer_priv_host
Definition: item_strfunc.h:736
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:2038
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:735
String * val_str(String *) override
Definition: item_strfunc.cc:2069
Name_resolution_context * m_name_resolution_ctx
Used to pass a security context to the resolver functions.
Definition: item_strfunc.h:731
Definition: item_strfunc.h:655
Item_func_sysconst super
Definition: item_strfunc.h:656
String * val_str(String *) override
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:664
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:670
Item_func_database(const POS &pos)
Definition: item_strfunc.h:659
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2000
const char * func_name() const override
Definition: item_strfunc.h:669
Definition: item_strfunc.h:767
const char * func_name() const override
Definition: item_strfunc.h:775
longlong val_int() override
Definition: item_strfunc.cc:2453
String * val_str(String *str) override
Definition: item_strfunc.cc:2466
double val_real() override
Definition: item_strfunc.cc:2441
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2422
Item_func_elt(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:769
This class represents the function ETAG which is used to traverse the input arguments and compute a 1...
Definition: item_strfunc.h:401
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:412
String * val_str(String *) override
Definition: item_strfunc.cc:1183
Item_func_etag(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:405
Item_func_etag(Item *a, Item *b)
Definition: item_strfunc.h:407
const char * func_name() const override
Definition: item_strfunc.h:411
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1249
String m_tmp_value
Definition: item_strfunc.h:402
Definition: item_strfunc.h:1114
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1116
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d, Item *e)
Definition: item_strfunc.h:1120
Item_func_export_set(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1118
String * val_str(String *str) override
Definition: item_strfunc.cc:3778
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3847
const char * func_name() const override
Definition: item_strfunc.h:1125
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:786
const char * func_name() const override
Definition: item_strfunc.h:264
String * val_str(String *) override
Definition: item_strfunc.cc:800
Item_func_from_base64(const POS &pos, Item *a)
Definition: item_strfunc.h:261
Definition: item_strfunc.h:1298
Item_func_from_vector(const POS &pos, Item *a)
Definition: item_strfunc.h:1306
const char * func_name() const override
Definition: item_strfunc.h:1309
String * val_str_ascii(String *str) override
Definition: item_strfunc.cc:4241
String buffer
Definition: item_strfunc.h:1302
static const uint32 per_value_chars
Definition: item_strfunc.h:1299
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4225
static const uint32 max_output_bytes
Definition: item_strfunc.h:1300
Item_func_from_vector(Item *a)
Definition: item_strfunc.h:1305
Definition: item_strfunc.h:1421
Item_func_get_dd_column_privileges(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1423
const char * func_name() 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:1427
enum Functype functype() const override
Definition: item_strfunc.h:1426
String * val_str(String *) override
This function prepares string with list of column privileges.
Definition: item_strfunc.cc:4492
Definition: item_strfunc.h:1445
enum Functype functype() const override
Definition: item_strfunc.h:1450
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1451
String * val_str(String *) override
This function prepares string representing create_options for table.
Definition: item_strfunc.cc:4564
Item_func_get_dd_create_options(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:1447
const char * func_name() const override
Definition: item_strfunc.h:1461
Definition: item_strfunc.h:1536
const char * func_name() const override
Definition: item_strfunc.h:1552
Item_func_get_dd_index_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1538
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1542
String * val_str(String *) override
This function prepares string representing se_private_data for index.
Definition: item_strfunc.cc:5109
enum Functype functype() const override
Definition: item_strfunc.h:1541
Definition: item_strfunc.h:1711
String * val_str(String *) override
This function prepares string representing value stored at key supplied.
Definition: item_strfunc.cc:5305
enum Functype functype() const override
Definition: item_strfunc.h:1716
Item_func_get_dd_property_key_value(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1713
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1717
const char * func_name() const override
Definition: item_strfunc.h:1725
Definition: item_strfunc.h:1466
String * val_str(String *) override
This function prepares string representing options for a schema.
Definition: item_strfunc.cc:4765
const char * func_name() const override
Definition: item_strfunc.h:1482
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1472
enum Functype functype() const override
Definition: item_strfunc.h:1471
Item_func_get_dd_schema_options(const POS &pos, Item *a)
Definition: item_strfunc.h:1468
Definition: item_strfunc.h:1513
String * val_str(String *) override
This function prepares string representing se_private_data for tablespace.
Definition: item_strfunc.cc:5043
const char * func_name() const override
Definition: item_strfunc.h:1529
enum Functype functype() const override
Definition: item_strfunc.h:1518
Item_func_get_dd_tablespace_private_data(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1515
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1519
Definition: item_strfunc.h:1730
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1737
enum Functype functype() const override
Definition: item_strfunc.h:1736
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:5360
const char * func_name() const override
Definition: item_strfunc.h:1745
Item_func_get_jdv_property_key_value(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1732
Definition: item_strfunc.h:1557
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1563
String * val_str(String *) override
Definition: item_strfunc.cc:4890
enum Functype functype() const override
Definition: item_strfunc.h:1562
Item_func_get_partition_nodegroup(const POS &pos, Item *a)
Definition: item_strfunc.h:1559
const char * func_name() const override
Definition: item_strfunc.h:1573
Definition: item_strfunc.h:936
String tmp_value
Definition: item_strfunc.h:937
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3399
Item_func_hex(const POS &pos, Item *a)
Definition: item_strfunc.h:940
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:3411
const char * func_name() const override
Definition: item_strfunc.h:941
Definition: item_strfunc.h:447
String * val_str(String *) override
Definition: item_strfunc.cc:1398
const char * func_name() const override
Definition: item_strfunc.h:458
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1450
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:450
Item_func_insert(const POS &pos, Item *org, Item *start, Item *length, Item *new_str)
Definition: item_strfunc.h:453
String tmp_value
Definition: item_strfunc.h:448
Definition: item_strfunc.h:1874
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1880
String * val_str(String *) override
This function prepares string representing EXTRA column for I_S.COLUMNS.
Definition: item_strfunc.cc:5670
const char * func_name() const override
Definition: item_strfunc.h:1890
Item_func_internal_get_dd_column_extra(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1876
enum Functype functype() const override
Definition: item_strfunc.h:1879
Definition: item_strfunc.h:1832
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1838
enum Functype functype() const override
Definition: item_strfunc.h:1837
Item_func_internal_get_enabled_role_json(const POS &pos)
Definition: item_strfunc.h:1834
String * val_str(String *) override
Definition: item_strfunc.cc:5589
const char * func_name() const override
Definition: item_strfunc.h:1846
Definition: item_strfunc.h:1813
Item_func_internal_get_hostname(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1815
enum Functype functype() const override
Definition: item_strfunc.h:1818
const char * func_name() const override
Definition: item_strfunc.h:1827
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1819
String * val_str(String *) override
Definition: item_strfunc.cc:5554
Definition: item_strfunc.h:1853
const char * func_name() const override
Definition: item_strfunc.h:1867
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1859
enum Functype functype() const override
Definition: item_strfunc.h:1858
Item_func_internal_get_mandatory_roles_json(const POS &pos)
Definition: item_strfunc.h:1855
String * val_str(String *) override
Definition: item_strfunc.cc:5621
Definition: item_strfunc.h:1794
String * val_str(String *) override
Definition: item_strfunc.cc:5517
Item_func_internal_get_username(const POS &pos, PT_item_list *list)
Definition: item_strfunc.h:1796
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1800
enum Functype functype() const override
Definition: item_strfunc.h:1799
const char * func_name() const override
Definition: item_strfunc.h:1808
Definition: item_strfunc.h:1602
const char * func_name() const override
Definition: item_strfunc.h:1619
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1609
String * val_str(String *) override
Definition: item_strfunc.cc:4947
Item_func_internal_tablespace_logfile_group_name(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1604
enum Functype functype() const override
Definition: item_strfunc.h:1608
Definition: item_strfunc.h:1626
Item_func_internal_tablespace_status(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1628
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1633
String * val_str(String *) override
Definition: item_strfunc.cc:4970
enum Functype functype() const override
Definition: item_strfunc.h:1632
const char * func_name() const override
Definition: item_strfunc.h:1643
Definition: item_strfunc.h:1580
enum Functype functype() const override
Definition: item_strfunc.h:1586
String * val_str(String *) override
Definition: item_strfunc.cc:4930
const char * func_name() const override
Definition: item_strfunc.h:1597
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1587
Item_func_internal_tablespace_type(const POS &pos, Item *a, Item *b, Item *c, Item *d)
Definition: item_strfunc.h:1582
Definition: item_strfunc.h:910
const char * func_name() const override
Definition: item_strfunc.h:916
longlong val_int() override
Definition: item_strfunc.cc:2962
Item_func_is_uuid(const POS &pos, Item *a)
Definition: item_strfunc.h:914
Item_bool_func super
Definition: item_strfunc.h:911
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:917
Definition: item_strfunc.h:486
Item_func_left(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:1573
String tmp_value
Definition: item_strfunc.h:487
String * val_str(String *) override
Definition: item_strfunc.cc:1523
const char * func_name() const override
Definition: item_strfunc.h:493
Definition: item_strfunc.h:988
const char * func_name() const override
Definition: item_strfunc.h:992
Item_func_like_range_max(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:990
Definition: item_strfunc.h:981
const char * func_name() const override
Definition: item_strfunc.h:985
Item_func_like_range_min(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:983
Definition: item_strfunc.h:960
String max_str
Definition: item_strfunc.h:963
const bool is_min
Definition: item_strfunc.h:964
Item_func_like_range(const POS &pos, Item *a, Item *b, bool is_min_arg)
Definition: item_strfunc.h:967
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:972
String min_str
Definition: item_strfunc.h:962
String * val_str(String *) override
Definition: item_strfunc.cc:3486
Definition: item_strfunc.h:472
const char * func_name() const override
Definition: item_strfunc.h:475
Item_func_lower(const POS &pos, Item *item)
Definition: item_strfunc.h:474
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1499
Definition: item_strfunc.h:871
String * val_str(String *) override
Definition: item_strfunc.cc:2976
Item_func_lpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:875
String tmp_value
Definition: item_strfunc.h:872
String lpad_str
Definition: item_strfunc.h:872
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2843
const char * func_name() const override
Definition: item_strfunc.h:879
Definition: item_strfunc.h:617
Item_func_ltrim(const POS &pos, Item *a)
Definition: item_strfunc.h:619
Definition: item_strfunc.h:778
String * val_str(String *str) override
Definition: item_strfunc.cc:2506
Item_str_func super
Definition: item_strfunc.h:779
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:2543
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2490
String tmp_str
Definition: item_strfunc.h:781
Item_func_make_set(const POS &pos, PT_item_list *opt_list)
Definition: item_strfunc.h:784
bool fix_fields(THD *thd, Item **ref) override
Definition: item_strfunc.cc:2486
const char * func_name() const override
Definition: item_strfunc.h:790
Definition: item_strfunc.h:1128
String * val_str(String *) override
QUOTE() function returns argument string in single quotes suitable for using in a SQL statement.
Definition: item_strfunc.cc:3908
Item_func_quote(const POS &pos, Item *a)
Definition: item_strfunc.h:1132
String tmp_value
Definition: item_strfunc.h:1129
const char * func_name() const override
Definition: item_strfunc.h:1133
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3867
Definition: item_strfunc.h:348
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:362
static const ulonglong MAX_RANDOM_BYTES_BUFFER
limitation from the SSL library
Definition: item_strfunc.h:352
Item_str_func super
Definition: item_strfunc.h:349
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:696
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:713
Item_func_random_bytes(const POS &pos, Item *a)
Definition: item_strfunc.h:355
String * val_str(String *a) override
Definition: item_strfunc.cc:720
const char * func_name() const override
Definition: item_strfunc.h:361
Definition: item_strfunc.h:1752
Item_func_remove_dd_property_key(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:1754
const char * func_name() const override
Definition: item_strfunc.h:1766
String * val_str(String *) override
This function removes a key value from given property string.
Definition: item_strfunc.cc:5447
enum Functype functype() const override
Definition: item_strfunc.h:1757
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1758
Definition: item_strfunc.h:841
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2604
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:2638
String tmp_value
Definition: item_strfunc.h:842
Item_func_repeat(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:845
const char * func_name() const override
Definition: item_strfunc.h:849
Definition: item_strfunc.h:434
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1376
String * val_str(String *) override
Replace all occurrences of string2 in string1 with string3.
Definition: item_strfunc.cc:1314
const char * func_name() const override
Definition: item_strfunc.h:444
String tmp_value
Definition: item_strfunc.h:435
String tmp_value_res
Holds result in case we need to allocate our own result buffer.
Definition: item_strfunc.h:437
String tmp_value2
Definition: item_strfunc.h:435
Item_func_replace(const POS &pos, Item *org, Item *find, Item *replace)
Definition: item_strfunc.h:440
Definition: item_strfunc.h:422
Item_func_reverse(Item *a)
Definition: item_strfunc.h:426
String * val_str(String *) override
Definition: item_strfunc.cc:1259
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1301
String tmp_value
Definition: item_strfunc.h:423
Item_func_reverse(const POS &pos, Item *a)
Definition: item_strfunc.h:427
const char * func_name() const override
Definition: item_strfunc.h:431
Definition: item_strfunc.h:496
Item_func_right(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:500
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1608
const char * func_name() const override
Definition: item_strfunc.h:504
String * val_str(String *) override
Definition: item_strfunc.cc:1583
String tmp_value
Definition: item_strfunc.h:497
Definition: item_strfunc.h:1385
Item_func_roles_graphml(const POS &pos)
Definition: item_strfunc.h:1390
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.cc:5288
String value_cache
Cache for the result value.
Definition: item_strfunc.h:1415
Item_func_sysconst super
Definition: item_strfunc.h:1386
const char * func_name() const override
Definition: item_strfunc.h:1400
Item_func_roles_graphml()
Definition: item_strfunc.h:1389
bool calculate_graphml(THD *thd)
Constructs and caches the graphml string.
Definition: item_strfunc.cc:5268
String * val_str(String *) override
Definition: item_strfunc.cc:5283
bool value_cache_set
Set to true if value_cache is set.
Definition: item_strfunc.h:1418
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1395
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:1402
Definition: item_strfunc.h:860
String tmp_value
Definition: item_strfunc.h:861
Item_func_rpad(const POS &pos, Item *arg1, Item *arg2, Item *arg3)
Definition: item_strfunc.h:864
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2744
String * val_str(String *) override
Definition: item_strfunc.cc:2771
const char * func_name() const override
Definition: item_strfunc.h:868
String rpad_str
Definition: item_strfunc.h:861
Definition: item_strfunc.h:623
Item_func_rtrim(const POS &pos, Item *a)
Definition: item_strfunc.h:625
Definition: item_strfunc.h:1156
bool eq(const Item *item) const override
Compare this item with another item for equality.
Definition: item_strfunc.cc:3195
Item_field * field_for_view_update() override
Definition: item_strfunc.h:1174
LEX_CSTRING collation_string
Definition: item_strfunc.h:1159
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3208
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.h:1180
const char * func_name() const override
Definition: item_strfunc.h:1170
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3165
enum Functype functype() const override
Definition: item_strfunc.h:1171
String * val_str(String *) override
Definition: item_strfunc.cc:3156
Item_func_set_collation(const POS &pos, Item *a, const LEX_CSTRING &collation_string_arg)
Definition: item_strfunc.h:1162
Item_str_func super
Definition: item_strfunc.h:1157
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3146
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:756
Item_func_soundex(const POS &pos, Item *a)
Definition: item_strfunc.h:761
String tmp_value
Definition: item_strfunc.h:757
Item_func_soundex(Item *a)
Definition: item_strfunc.h:760
String * val_str(String *) override
Definition: item_strfunc.cc:2174
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2129
const char * func_name() const override
Definition: item_strfunc.h:764
Definition: item_strfunc.h:852
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2684
String * val_str(String *) override
Definition: item_strfunc.cc:2716
const char * func_name() const override
Definition: item_strfunc.h:857
Item_func_space(const POS &pos, Item *arg1)
Definition: item_strfunc.h:854
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:1038
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:1047
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:1008
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:992
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:525
String * val_str(String *) override
Definition: item_strfunc.cc:1718
Item_func_substr_index(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:529
String tmp_value
Definition: item_strfunc.h:526
const char * func_name() const override
Definition: item_strfunc.h:533
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1707
Definition: item_strfunc.h:507
const char * func_name() const override
Definition: item_strfunc.h:522
Item_func_substr(Item *a, Item *b)
Definition: item_strfunc.h:513
Item_func_substr(Item *a, Item *b, Item *c)
Definition: item_strfunc.h:516
String tmp_value
Definition: item_strfunc.h:510
Item_func_substr(const POS &pos, Item *a, Item *b)
Definition: item_strfunc.h:514
Item_str_func super
Definition: item_strfunc.h:508
String * val_str(String *) override
Definition: item_strfunc.cc:1619
Item_func_substr(const POS &pos, Item *a, Item *b, Item *c)
Definition: item_strfunc.h:517
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1666
Definition: item_strfunc.h:629
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:645
virtual const Name_string fully_qualified_func_name() const =0
Item_func_sysconst(const POS &pos)
Definition: item_strfunc.h:636
Item_str_func super
Definition: item_strfunc.h:630
Item_func_sysconst()
Definition: item_strfunc.h:633
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:751
String * val_str_ascii(String *) override
Definition: item_strfunc.cc:768
String tmp_value
Definition: item_strfunc.h:199
Definition: item_strfunc.h:1288
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4182
String * val_str(String *str) override
Definition: item_strfunc.cc:4197
String buffer
Definition: item_strfunc.h:1289
const char * func_name() const override
Definition: item_strfunc.h:1294
Item_func_to_vector(const POS &pos, Item *a)
Definition: item_strfunc.h:1292
Definition: item_strfunc.h:536
const bool m_trim_trailing
Definition: item_strfunc.h:557
bool trim_trailing() const
Definition: item_strfunc.h:589
bool trim_leading() const
Definition: item_strfunc.h:584
const char * func_name() const override
Definition: item_strfunc.h:596
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1930
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:1970
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:543
@ TRIM_BOTH_DEFAULT
Definition: item_strfunc.h:544
@ TRIM_LTRIM
Definition: item_strfunc.h:548
@ TRIM_RTRIM
Definition: item_strfunc.h:549
@ TRIM_BOTH
Definition: item_strfunc.h:545
@ TRIM_LEADING
Definition: item_strfunc.h:546
@ TRIM_TRAILING
Definition: item_strfunc.h:547
Item_func_trim(Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:572
Item_func_trim(Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:560
Item_func_trim(const POS &pos, Item *a, TRIM_MODE tm)
Definition: item_strfunc.h:578
String tmp_value
Definition: item_strfunc.h:553
const TRIM_MODE m_trim_mode
Definition: item_strfunc.h:555
Item_func_trim(const POS &pos, Item *a, Item *b, TRIM_MODE tm)
Definition: item_strfunc.h:566
String remove
Definition: item_strfunc.h:554
const bool m_trim_leading
Definition: item_strfunc.h:556
String * val_str(String *) override
Definition: item_strfunc.cc:1835
Definition: item_strfunc.h:1313
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1318
const char * func_name() const override
Definition: item_strfunc.h:1325
String * val_str(String *str) override
Definition: item_strfunc.cc:4273
String buffer
Definition: item_strfunc.h:1314
Item_func_uncompress(const POS &pos, Item *a)
Definition: item_strfunc.h:1317
Definition: item_strfunc.h:1262
const char * func_name() const override
Definition: item_strfunc.h:1268
Item_func_uncompressed_length(const POS &pos, Item *a)
Definition: item_strfunc.h:1266
String value
Definition: item_strfunc.h:1263
longlong val_int() override
Definition: item_strfunc.cc:4084
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1269
Definition: item_strfunc.h:946
Item_func_unhex(const POS &pos, Item *a)
Definition: item_strfunc.h:950
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3441
String * val_str(String *) override
Convert given hex string to a binary string.
Definition: item_strfunc.cc:3454
String tmp_value
Definition: item_strfunc.h:947
const char * func_name() const override
Definition: item_strfunc.h:954
Definition: item_strfunc.h:479
Item_func_upper(const POS &pos, Item *item)
Definition: item_strfunc.h:481
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:1511
const char * func_name() const override
Definition: item_strfunc.h:482
Definition: item_strfunc.h:675
Item_func_user(const POS &pos)
Definition: item_strfunc.h:688
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:692
const Name_string fully_qualified_func_name() const override
Definition: item_strfunc.h:716
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:2111
String * val_str(String *) override
Definition: item_strfunc.cc:2029
Item_func_sysconst super
Definition: item_strfunc.h:676
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item_strfunc.h:710
Item_func_user()
Definition: item_strfunc.h:687
const char * func_name() const override
Definition: item_strfunc.h:715
bool evaluate(const char *user, const char *host)
Evaluate user name, must be called once per execution.
Definition: item_strfunc.cc:2088
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:2024
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:706
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:698
bool m_evaluated
True when function value is evaluated, set to false after each execution.
Definition: item_strfunc.h:680
Definition: item_strfunc.h:882
String * val_str(String *) override
Definition: item_strfunc.cc:2880
Item_func_uuid_to_bin(const POS &pos, Item *arg1, Item *arg2)
Definition: item_strfunc.h:889
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:2871
uchar m_bin_buf[mysql::gtid::Uuid::BYTE_LENGTH]
Buffer to store the binary result.
Definition: item_strfunc.h:884
Item_func_uuid_to_bin(const POS &pos, Item *arg1)
Definition: item_strfunc.h:887
const char * func_name() const override
Definition: item_strfunc.h:893
Definition: item_strfunc.h:1329
Item_func_uuid(const POS &pos)
Definition: item_strfunc.h:1334
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:1343
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:1337
String * val_str(String *) override
Definition: item_strfunc.cc:4473
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:4358
const char * func_name() const override
Definition: item_strfunc.h:1341
Item_func_uuid()
Definition: item_strfunc.h:1333
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:4351
Item_str_func super
Definition: item_strfunc.h:1330
Definition: item_strfunc.h:1216
String * val_str(String *) override
Definition: item_strfunc.cc:3311
bool resolve_type(THD *) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.cc:3267
const char * func_name() const override
Definition: item_strfunc.h:1238
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3255
const uint num_codepoints
Definition: item_strfunc.h:1226
String tmp_value
Definition: item_strfunc.h:1219
Item_str_func super
Definition: item_strfunc.h:1217
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3244
Item_field * m_field_ref
Definition: item_strfunc.h:1222
const uint result_length
Definition: item_strfunc.h:1221
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3302
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:1227
const bool as_binary
Definition: item_strfunc.h:1223
uint flags
Definition: item_strfunc.h:1220
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:1083
bool do_itemize(Parse_context *pc, Item **res) override
The core function that does the actual itemization.
Definition: item_strfunc.cc:3705
bool resolve_type(THD *thd) override
Resolve type-related information for this item, such as result field type, maximum size,...
Definition: item_strfunc.h:1097
String tmp_value
Definition: item_strfunc.h:1086
Item_str_func super
Definition: item_strfunc.h:1084
String * val_str(String *) override
Definition: item_strfunc.cc:3713
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:1105
Item_load_file(const POS &pos, Item *a)
Definition: item_strfunc.h:1089
const char * func_name() const override
Definition: item_strfunc.h:1093
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:1094
void cleanup() override
Called for every Item after use (preparation and execution).
Definition: item.cc:11580
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:461
String * val_str(String *) override
Definition: item_strfunc.cc:1467
Item_str_conv(const POS &pos, Item *item)
Definition: item_strfunc.h:468
String tmp_value
Definition: item_strfunc.h:465
uint multiply
Definition: item_strfunc.h:463
my_charset_conv_case converter
Definition: item_strfunc.h:464
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:1563
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:1546
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:1061
const char * func_name() const override
Definition: item_strfunc.h:1078
Item_typecast_char(THD *thd, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1066
Item_typecast_char(const POS &pos, Item *a, longlong length_arg, const CHARSET_INFO *cs_arg)
Definition: item_strfunc.h:1071
enum Functype functype() const override
Definition: item_strfunc.h:1076
void print(const THD *thd, String *str, enum_query_type query_type) const override
This method is used for to:
Definition: item_strfunc.cc:3523
void add_json_info(Json_object *obj) override
Add all the node-specific json fields.
Definition: item_strfunc.cc:3536
bool eq_specific(const Item *item) const override
Provide a more specific equality check for a function.
Definition: item_strfunc.cc:3516
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:929
String str_value
str_values's main purpose is to cache the value in save_in_field
Definition: item.h:3669
void set_nullable(bool nullable)
Definition: item.h:3781
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:3676
virtual Item_field * field_for_view_update()
Definition: item.h:3277
bool fixed
True if item has been resolved.
Definition: item.h:3769
bool null_value
True if item is null.
Definition: item.h:3806
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:3807
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: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: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:3694
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:1763
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:64
@ MYSQL_TYPE_LONG_BLOB
Definition: field_types.h:86
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:5178
String * mysql_generate_uuid(String *str)
Generate Universal Unique Identifier (UUID).
Definition: item_strfunc.cc:4366
void tohex(char *to, uint64_t from, uint len)
Definition: item_strfunc.h:1943
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:1578
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 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: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
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: 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:40
std::list< T, ut::allocator< T > > list
Specialization of list which uses ut_allocator.
Definition: ut0new.h:2884
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